| OCR Text |
Show f(X) = g(X) h(X) = X g(X) = X q(b ) . 134 q (X ) . Since both h(X) and g(X) can reduce to X, it is easy to show that the set of "equal ity heads" of the program { f(X) = h(X ) f(X) = g(X) h(X) = X g(X) = X } makes a canonical term rewriting system. Now consider the equality g(a) = a. It is clear that there is no refutat ion which derives the above equality, since the last two rules in the program say that only g( b) = b is provable. However, this equality indeed holds, as evidenced by the following proof: f(X) h(X) = h(X) & f(X) = g(X) = X & g(a) = h(a) => => g(a) = h(a) g(a) = a. The problem lies in the fact that the above set of clauses having equa-tions as their heads is not confluent, though the set of the equality heads is confluent. This example indicates that the problem of confluence for conditional rewrite rules is in general more complex than that for unconditional rewrite rules. As a special case, it can be shown that if there are no critical pairs in the equality heads, then the confluence of the set of clauses having equations as their heads is equivalent to the confluence of the set of the equal ity heads of the clauses. It might be difficult to provide sufficient conditions for con-fluence in more general cases. Incidentally, the usefulness of cond itiona/ term rewriting systems w as argued in the early 70s when Knuth and Bendix first formalized the notion of canonical term rewriting systems [67]. Several efforts have been directed at this issue since then. However, not much progress has been made. This is |