| OCR Text |
Show 4 Unification algorithms are fundamental to computational logic. A unification algorithm is an essential component in several computer oriented theorem proving procedures; see, for example [38, 93], and most notably, Robinson's resolution procedure [99]. Paterson and Wegman [87] have developed a linear unification algorithm, while Martelli and Montanari [83] have presented a unification algorithm that is more efficient in practical applications. The unification here is sometimes called ordinary unification: unification in first-order free terms. The notion of ordinary unification can be generalized to unification in the presence of an equational theory E. This generalized unification is called E-unification. Consider, for example, the commutative axiom f(x,y) f(y,x) and two terms t 1 = f(z,a) and t 2 = f(a,b). t 1 and t2 are unifiable under the commutative equational theory, since there exists a substitution (f = {z <- b} such that t1t1 is equivalent to t1t2 under the theory. When an equational theory is present, the problem of unification becomes one of solving equations, which is known to be an important, albeit a hard problem. Many unification algorithms for individual equational theories have been invented; see, for example, [29, 74, 75, 76, 92, 94, 107, 108, 113, 114], and [106, 109, 110] for a comprehensive treatment. While the proposed methods in the algorithms for these individual theories seem to be quite different, a complete algorithm for the class of equational theories that possess a canonical term rewriting system has been obtained by Fay [31] and a new version presented by Hullot [51]. A canonical term rewriting system possesses two properties: the confluence property and the termination property. The confluence property is equivalent to the Church-Rosser property, which essentially says that if two terms are equal then they can be rewritten to a common term. The termination property requires that every rewriting sequence terminate. The central idea in Fay's algorithm is the use of the narrowing process, as defined by Lankford [73]. The narrowing process is also the basis for constructing unification algorithms incrementally in [55]. |