Normal forms in term rewriting systems

Many important problems in computer science can be reduced to the problem of using a set of equations to simplify a term. For instance, implementation of programming language interpreters, proving theorems of the form A=B, and implementation of abstract data types can all be reduced to the problem of simplifying a term using a set of equations. In our case, the equations are used in just one direction, so we write such equations as A(IMPLIES)B with the meaning that an occurrence of the term A can be replaced by B. If we can replace subterms of C to produce the term D and if no subterms of D can be replaced then we say D is a normal form for C. We represent an infinite set of equations by using a finite set of equation schemata (equations with variables). We call a set of equation schemata a Term Rewriting System. An important question for such systems is whether normal forms are unique (i.e., each term has at most one normal form). For schemata without repeated variables (no variable is repeated on the left side of an equation schema), O'Donnell has shown that normal forms are unique if the schemata are nonoverlapping and unequivocal. These conditions are used to prove the confluence property (Church-Rosser property), a stronger property than unique normal forms. Klop has shown that the confluence property does not necessarily hold when repeated variables are allowed. We show that normal forms are unique despite the lack of the confluence property provided the equation schemata are nonoverlapping and compatible (i.e., the schemata agree on similar terms). We also develop the Directed Congruence Closure Algorithm, an algorithm that efficiently finds the normal form of a term provided the equation schemata are nonoverlapping, unequivocal, and have no repeated variables. This algorithm is a variation on the Congruence Closure Algorithm of Kozen, Nelson and Oppen, and Downey, Sethi and Tarjan. Like the Congruence Closure Algorithm, it has the advantage of remembering which terms have already been proved equivalent. However, while the Congruence Closure Algorithm can use only a finite set of equations, the Directed Congruence Closure Algorithm can use an infinite set of equations represented by a finite set of equation schemata.