Transformations and Confluence for Rewrite Systems

Abstract Many important applications of rewrite systems, e.g., automated reasoning, algebraic specifications of abstract data types, and functional/equational programming, rely either wholly or in part on rewrite systems that are constructor-based. In this paper, we study general transformations of rewrite systems that preserve confluence and normal forms. In 1985, Thatte showed that an orthogonal system can be transformed into an orthogonal constructor-based system that preserves normal forms up to a certain simple homomorphism. In 1988, Thatte claimed that this transformation works for all semiregular (confluent + nonoverlapping) systems. We show that Thatte's transformation fails to preserve confluence and normal forms for semiregular systems. We then introduce the concept of weak persistence and show that Thatte's transformation is correct for all weakly persistent confluent systems. We also give some general conditions that imply weak persistence and show that this class includes as subclasses the following: left-linear, nonoverlapping systems with confluent root overlaps (generalization of orthogonal systems), nonoverlapping noetherian systems with confluent root overlaps, and the nonlinear systems with no overlaps proved confluent by Klop. We show that our transformation scheme for convergent systems can also be applied to systems in which the innermost rewriting relation is confluent. Our results indicate that persistence plays a role in arbitrary confluent systems that in analogous to the role of the no-overlap restriction in left-linear systems; and similarly weak persistence plays a role that is analogous to that of the nonoverlapping restriction for left-linear systems.

[1]  Gérard P. Huet,et al.  Proofs by Induction in Equational Theories with Constructors , 1980, FOCS.

[2]  David R. Musser,et al.  On proving inductive properties of abstract data types , 1980, POPL '80.

[3]  I. V. Ramakrishnan,et al.  Programming with Equations: A Framework for Lazy Parallel Evaluation , 1992, CADE.

[4]  Jan Willem Klop,et al.  Combinatory reduction systems , 1980 .

[5]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[6]  Christoph M. Hoffmann,et al.  Programming with Equations , 1982, TOPL.

[7]  Joseph A. Goguen,et al.  How to Prove Algebraic Inductive Hypotheses Without Induction , 1980, CADE.

[8]  I. V. Ramakrishnan,et al.  Nonoblivious Normalization Algorithms for Nonlinear Rewrite Systems , 1990, ICALP.

[9]  Michael J. O'Donnell,et al.  Equational Logic as a Programming Language. , 1987 .

[10]  Alain Laville Lazy pattern matching in the ML language , 1987, FSTTCS.

[11]  Satish R. Thatte On the Correspondence Metween Two Classes of Reduction Systems , 1985, Inf. Process. Lett..

[12]  I. V. Ramakrishnan,et al.  Transforming Strongly Sequential Rewrite Systems with Constructors for Efficient parallel Execution , 1989, RTA.

[13]  Paul Chew,et al.  An improved algorithm for computing with equations , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

[14]  Rakesh M. Verma A theory of using history for equational systems with applications , 1995, JACM.

[15]  Paul Chew Unique normal forms in term rewriting systems with repeated variables , 1981, STOC '81.

[16]  P. Schönemann On artificial intelligence , 1985, Behavioral and Brain Sciences.

[17]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[18]  M. Newman On Theories with a Combinatorial Definition of "Equivalence" , 1942 .

[19]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[20]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[21]  Satish R. Thatte Implementing First-Order Rewriting with Constructor Systems , 1988, Theor. Comput. Sci..