Equations occur in many computer applications, such as symbolic computation, functional programming, abstract data type specifications, program verification, program synthesis, and automated theorem proving. Rewrite systems are collections of directed equations (rewrite rules) used to compute by replacing subterms in a given formula by equal terms until a simplest form possible (a normal form) is obtained. Many formula manipulation systems, such as Reduce or Macsyma use equations in this manner. As a computational formalism, rewrite systems have the full power of Turing machines and various equational programming languages have been proposed that are based on the paradigm of rewriting (e. g., O’Donnell 1985; Goguen and Meseguer 1986). We shall study the application of rewrite techniques to reasoning about equations.
Unable to display preview. Download preview PDF.