| OCR Text |
Show A0 = H(f(s(z), g(x1 , y 1 )), c(a, e))) I I (only narrowable at 1.2) v ~~ 0 = {y1 <- b} v A 1 = H(f(s(z), c(x1 , g(s(x1), b))), c(a, e)) I I (narrowable at 1 and 1.2.2, but 1.2.2 can be ignored.) I tJ1 = 0 v v A2 = H(c(x1 , f(z, g(s(x1 ), b))), c(a, e)) I I (na rrowable at 1.2 and 1.2.2, but 1.2.2 can be ignored.) I fJz = {z < - a} v v A3 = H(c(x1, e), c(a, e)) now unifiable u = {x1 <- a} Figure 7: An illustration of outer narrowing there would have been infinite number of narrowing sequences, had outer narrowing not been used. For example, the subterm g(s(x1),b) in H(f(s(z), c(x1, g(s(x1), b))), c(a, e)) is narrowable, and the narrowing yields H(f(s(z), c(x 1, c(s(x1), g(s(s(x1)), b)))), c(a, e)). The subterm g(s(s(x1)),b) is once again narrowable. In fact the narrow ing sequence starting from this narrowing wi ll not terminat e D 72 We now define the set of addresses at w hich narrowi ng can possibly be ignored. As we did earlier, given two term A and B, we form a new term H(A,B), where H is a function symbol not in F. Recall that the set of function symbols F can be divided into two subsets F d and F c' containing defined function symbols and constructo rs, respectively. |