Document Type

Technical Report

Publication Date


Technical Report Number



Many problems in computer science can be described in terms of reduction rules that tell how to transform terms. Problems that can be handled in this way include interpreting programs, implementing abstract data types, and proving certain kinds of theorems. A terms is said to have a normal form if it can be transformed, using the reduction rules, into a term to which no further reduction rules apply. In this paper, we extend the Congruence Closure Algorithm, an algorithm for finding the consequences of a finite set of equations, to develop Directed Congruence Closure, a technique for finding the normal form of a term provided the reduction rules satisfy the conditions for a regular term rewriting system. This technique is particularly efficient because it inherits, from the Congruence Closure Algorithm, the ability to remember all objects that have already been proved equivalent.