Equational Reasoning and Term Rewriting Systems

David A. Plaisted · 1993

Abstract Anequational system is a set of equations. Often we are interested in knowing if an equation follows logically from the given set. For example, given the equationsx + y = y + x, (x + y) + z = x 4-(y 4-z), and — ( —(x +y) + - (x + -y)) = x, we might want to know if the equation — ( —(x +y) + - (x + -y)) = x is a logical consequence. As another example, we might want to know if x *y = y * x in a group in whichx =e for allx. Such systems are of interest for computer scientists as well as mathematicians. Common data structures like lists and stacks can often be described by such sets of equations. Furthermore, systems for mechanizing such proofs on a computer are becoming more and more powerful. In addition, a functional program is essentially a set of equations, typically with higher order functions, and the execution of a program is then a kind of equational reasoning. We will discuss methods of inference that are particularly adapted to equational systems without explicit higher order functions. We will also discuss systems in which the equations may have conditions attached. Next we will consider the use of equational reasoning in general theorem proving programs.

Read the paper · More papers on PaperTik