| OCR Text |
Show ~, = {x. <- t '., ... , x. <- t' .} . I I J J For each substitution ~ , obtained, redu ce the term ~ ' (H(A, B)) . If there is a reduction sequence (*) ~'(H(A,B)) ->k H(R,R), for some term R, then output the subst itution ~ '. It is important to stress that t he generation of terms and substitutions must be interleaved with the test for the existence of a reduction sequence (* ), in order for the algorithm to function effectively. This is because the term generation process is nonterminating when F contains function symbols of arity greater than 0, and the test for the existence of a reduction sequence (*) is also potentially nonterminating. 0 Remarks: 1. The highly nondeterministic nature of the algorithm should be noticed. The description of the algorithm should be considered as expressing complete enumeration strategies, such as the breadthfirst strategy. 2. In the algorithm, we used a subset of V instead of V itself. This is because, in general, a unifier may not necessarily involve all the variables appearing in the given terms. 3. The algorithm described here is a semidecision procedure, and will not terminate in the general case. There are two sources that lead to nontermination: the term construction process is nonterminating for nontrivial sets of function symbols, and the termination of rewriting sequences is not guaranteed. However, for any given unifier, the algorithm generates it (or one equivalent to it) in a finite number of steps, as shown in the theorem that follows. Theorem 3-2: Algorithm 1 is complete for all the equational theories that admit a confluent term rewriting system. 0 30 In fact, Algorithm 1 enumerates all the unifiers for A and B that are restricted to the set of variables in A and B. |