Term Graph Rewriting
H.P. Barendregt1, M.C.J.D. van Eekelen1, J.R.W. Glauert2, J.R. Kennaway2, M.J.
Plasmeijer1 and M.R.Sleep2.
Abstract
Graph rewriting (also called reduction) as defined in Wadsworth [1971] was
introduced in order to be able to give a more efficient implementation of
functional programming languages in the form of lambda calculus or term rewrite
systems: identical subterms are shared using pointers.
Several other authors, e.g. Ehrig [1979], Staples [1980a,b,c], Raoult [1984] and
van den Broek et al. [1986] have given mathematical descriptions of graph
rewriting, usually employing concepts from category theory. These papers prove
among other things the correctness of graph rewriting in the form of the
Church-Rosser property for ³well-behaved² (i.e. regular) rewrite systems.
However, only Staples has formally studied the soundness and completeness of
graph rewriting with respect to term rewriting.
In this paper we give a direct operational description of graph rewriting that
avoids the category theoretic notions. We show that if a term t is interpreted as
a graph g(t) and is reduced in the graph world, then the result represents an
actual reduct of the original term t (soundness). For weakly regular term rewrite
systems, there is also a completeness result: every normal form of a term t can
be obtained from the graphical implementation. We also show completeness for all
term rewrite systems which possess a so called hypernormalising strategy, and in
that case the strategy also gives a normalising strategy for the graphical
implementation. Besides having nice theoretical properties, weakly regular
systems offer opportunities for parallelism, since redexes at different places
can be executed independently or in parallel, without affecting the final result.