Implementation of programming language interpreters, proving theorems of the form A=B, and implementation of abstract data types are all problems that can be reduced to the problem of finding a normal form for an expression with respect to a finite set of equation (axiom) schemata The definition of a nonoverlapping s set of axiom schemata is given and the directed congruence closure algorithm is presented; an algorithm that efficiently solves this kind of problem provided the axiom schemata are nonoverlapping. The algorithm is a variation on the congruence closure algorithm? and, like the congruence closure algorithm, it has the advantage of remembering which expressions have already been proved to be equivalent. However, unlike the congruence closure algorithm, which can use only a finite set of axioms, the directed congruence closure algorithm allows a possibly infinite set of axioms generated by a finite set of axiom schemata.
[1]
Derek C. Oppen,et al.
Fast decision algorithms based on congruence closure
,
1978
.
[2]
Jan Willem Klop,et al.
Combinatory reduction systems
,
1980
.
[3]
Donald E. Knuth,et al.
Simple Word Problems in Universal Algebras††The work reported in this paper was supported in part by the U.S. Office of Naval Research.
,
1970
.
[4]
Christoph M. Hoffmann,et al.
Programming with Equations
,
1982,
TOPL.
[5]
Greg Nelson,et al.
Fast Decision Procedures Based on Congruence Closure
,
1980,
JACM.
[6]
Michael J. O'Donnell,et al.
Computing in systems described by equations
,
1977,
Lecture Notes in Computer Science.
[7]
Ellis Horowitz,et al.
Abstract data types and software validation
,
1978,
CACM.