| OCR Text |
Show { x = g(y, z) x = g(a, z) } . We can further "transform" the above equations to {g(y, z) = g(a, z)}. 13 Using the same procedure as before, the above equation can be transformed to { Y = a z = z }, where the equation z = z can be ignored. The initial equation has thus been solved with the solution, i.e ., a substitution cr 1 = {x <- g(a, z), y <- a}. It is easy to see that when this substitution is applied to t 1 and t 2, we get the common term f(g(a, z), g(a, z)). The substitution cr 1 is therefore a unifier for t 1 and t 2. The above process of finding the desired unifier is essential in many unification algorithms, e.g., in the algorithm described in [83]. The unifier for two terms is not necessarily unique. For example, the sub-stitution cr2 = {x <- g(a, a), y <-a, z <-a} is also a unifier for t 1 and t 2, because we can obtain the common term f(g(a, a), g(a, a)). However, this term is an instance of f(g(a, z), g(a, z)), since cr2 is an instance of cr1 obtained as the composition ,ocr1 with ,o = {z <- a}. The unifier cr1 is then said to be more general than cr 2; hence a unification algorithm only needs to compute cr 1. Now, suppose the function f obeys the commutativity law: f(x, y) = f(y, x). |