| OCR Text |
Show H(c(a"c(Ia ,a,), x), c(x, f(y, z))) --.>fail untfy I [2.2] Po = {y <- a} v H(c(a"c(a,a,), x), c(x, a"h(z))) --> fail un ify I I [2.2.2] P, = 0 v H(c(a"c(a,a,), x), c(x, aAc(z,a))) -~> succeed with~ = {x <- a"c(a,a), z <-a} untfy Figure 9: An illustration of the basic algorithm 5.3.3.2 Operations on Environment Definition 5-4: An environment, denoted by Env, is a five-tuple <U, T, p, w, ~>. U and T are sets of multiequations, as described in the last section. p serves as a pointer to the rewrite rule last used. w is the address of the last term upon which narrowing was carried out, and ~ is the composition of the accumulated unifiers along a narrowing sequence. tJ 94 p is needed because a term might be narrowable by more than one rewrite rule. In this case, we assume that the order of applying those rules is the one, in which the rewrite rules are present in the given term rewriting sys-tern. Since there may exist more than one address at which a term is narrow-able, the order of narrowing needs specifying. In general, one can give a func-tion that, given the last used address, computes the next address for narrowing. For example, one can assume that the desired order of narrowing is left-to-right and outer-to-inner, as suggested by the evidence discussed in the last chapter. There are two procedures that operate on environments: Transform and Deduce, as detailed below. The procedure Transform, defined in Figure 11, takes an environment |