(LaTeX) Abstract: 
An {\em equational 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 equations $x + y = y + x$, $(x + y) + z = x + (y + 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 which $x ^ 2 = e$ for all $x$. 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 mechanising 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. We also touch on the use of equations in logic and functional programming. Our survey differs from others in several ways. In general, our survey uses formalisms based on logic, and emphasizes the relationship between syntax and semantics. Some of our notation is novel, and some results may be original. Our presentation of some topics like unfailing completion and strong sequentiality is different. We do not emphasize properties of systems with more than one rewrite relation, as do other surveys. We do not study inductive theorems; for that, see a later chapter in this series. The organization of our survey is also different than others. 




Download
Access Level: 

