Nordic Journal of Computing 10(2003), 290–312. REWRITING VIA COINSERTERS NEIL GHANI University of Leicester, Department of Mathematics and Computer Science University Road, Leicester LE1 7RH, United Kingdom
[email protected] CHRISTOPH LUTH¨ Universitat¨ Bremen, FB 3 — Mathematik und Informatik P.O. Box 330 440, D-28334 Bremen, Germany
[email protected] Abstract. This paper introduces a semantics for rewriting that is independent of the data being rewritten and which, nevertheless, models key concepts such as substitution which are central to rewriting algorithms. We demonstrate the naturalness of this construction by showing how it mirrors the usual treatment of algebraic theories as coequalizers of monads. We also demonstrate its naturalness by showing how it captures several canonical forms of rewriting. ACM CCS Categories and Subject Descriptors: F.4.m [Mathematical Logic and Formal Languages]: Miscellaneous – rewrite systems, term rewriting systems; F.4.1 [Mathematical Logic and Formal Languages]: Mathematical Logic – lambda calculus and related systems Key words: rewriting, monads, computation, category theory 1. Introduction Rewrite systems offer a flexible and general notion of computation that has ap- peared in various guises over the last hundred years. The first rewrite systems were used to study the word problem in group theory at the start of the twentieth century [Epstein 1992], and were subsequently further developed in the 1930s in the study of the λ-calculus and combinatory logic [Church 1940]. In the 1950s, Grobner¨ ba- sis were developed to solve the ideal membership problem for polynomials [Buch- berger and Winkler 1998]. In the 1970s, starting with Knuth-Bendix completion [Knuth and Bendix 1970], term rewriting systems (TRSs) have played a prominent roleˆ in the design and implementation of logical and functional programming lan- guages, the theory of abstract data types, and automated theorem proving [Baader and Nipkow 1998].