Diagrams for Meaning Preservation

This paper presents an abstract framework and multiple diagram-based methods for proving meaning preservation, i.e., that all rewrite steps of a rewriting system preserve the meaning given by an operational semantics based on a rewriting strategy. While previous rewriting-based methods have generally needed the treated rewriting system as a whole to have such properties as, e.g., confluence, standardization, and/or termination or boundedness of developments, our methods can work when all of these conditions fail, and thus can handle more rewriting systems. We isolate the new lift/project with termination diagram as the key proof idea and show that previous rewriting-based methods (Plotkin's method based on confluence and standardization and Machkasova and Turbak's method based on distinct lift and project properties) implicitly use this diagram. Furthermore, our framework and proof methods help reduce the proof burden substantially by, e.g., supporting separate treatment of partitions of the rewrite steps, needing only elementary diagrams for rewrite step interactions, excluding many rewrite step interactions from consideration, needing weaker termination properties, and providing generic support for using developments in combination with any method.

[1]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[2]  Walid Taha,et al.  A sound reduction semantics for untyped CBN mutli-stage computation. Or, the theory of MetaML is non-trival (extended abstract) , 1999, PEPM '00.

[3]  Stefan Blom,et al.  Cyclic Lambda Calculi , 1997, TACS.

[4]  Martin Odersky A Syntactic Method for Proving Observational Equivalences , 1993 .

[5]  Douglas J. Howe Proving Congruence of Bisimulation in Functional Programming Languages , 1996, Inf. Comput..

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

[7]  Paul-André Melliès,et al.  Axiomatic Rewriting Theory I: A Diagrammatic Standardization Theorem , 2005, Processes, Terms and Cycles.

[8]  Stefan Blom,et al.  Skew confluence and the lambda calculus with letrec , 2002, Ann. Pure Appl. Log..

[9]  Elena Machkasova,et al.  A Calculus for Link-Time Compilation , 2000, ESOP.

[10]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[11]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[12]  Andrew Pitts,et al.  Semantics and Logics of Computation: Operationally-Based Theories of Program Equivalence , 1997 .

[13]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[14]  Matthias Felleisen,et al.  A call-by-need lambda calculus , 1995, POPL '95.

[15]  John H. Reppy,et al.  A Calculus for Compiling and Linking Classes , 2000, ESOP.

[16]  Matthias Felleisen,et al.  A Syntactic Theory of Sequential State , 1989, Theor. Comput. Sci..

[17]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[18]  Robert Muller,et al.  M-LISP: a representation-independent dialect of LISP with reduction semantics , 1992, TOPL.

[19]  Robert Hieb,et al.  The Revised Report on the Syntactic Theories of Sequential Control and State , 1992, Theor. Comput. Sci..

[20]  Zena M. Ariola,et al.  Lambda Calculus with Explicit Recursion , 1997, Inf. Comput..

[21]  Douglas J. Howe Equality in lazy computation systems , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[22]  Jean-Jacques Lévy,et al.  An abstract standardisation theorem , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[23]  Walid Taha,et al.  A Sound Reduction Semantics for Untyped CBN Multi-stage Computation. Or, the Theory of MetaML is Non-trivial (Extended Abstract) , 1999, PEPM.