Rewriting with Strategies in ELAN: A Functional Semantics

In this work, we consider term rewriting from a functional point of view. A rewrite rule is a function that can be applied to a term using an explicit application function. From this starting point, we show how to build more elaborated functions, describing first rewrite derivations, then sets of derivations. These functions, that we call strategies, can themselves be defined by rewrite rules and the construction can be iterated leading to higher-order strategies. Furthermore, the application function is itself defined using rewriting in the same spirit. We present this calculus and study its properties. Its implementation in the language is used to motivate and exemplify the whole approach. The expressiveness of is illustrated by examples of polymorphic functions and strategies.

[1]  Hélène Kirchner,et al.  ELAN: A logical framework based on computational systems , 1996, WRLA.

[2]  Claude Kirchner,et al.  Solving Equations in Abstract Algebras: A Rule-Based Survey of Unification , 1991, Computational Logic - Essays in Honor of Alan Robinson.

[3]  Gert Smolka A Foundation for Higher-order Concurrent Constraint Programming , 1994, CCL.

[4]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[5]  Claude Kirchner,et al.  Combining Higher-Order and First-Order Computation Using Rho Calculus: Towards a Semantics of ELAN , 1998 .

[6]  Lawrence C. Paulson,et al.  A Higher-Order Implementation of Rewriting , 1983, Sci. Comput. Program..

[7]  Narciso Martí-Oliet,et al.  Rewriting Logic as a Logical and Semantic Framework , 1996 .

[8]  Peter Borovanský,et al.  Cooperation of constraint solvers: using the new process control facilities of ELAN , 1998, WRLA.

[9]  Claude Kirchner,et al.  Syntactic theories and unification , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[10]  Hélène Kirchner,et al.  A Compiler for Rewrite Programs in Associative-Commutative Theories , 1998, PLILP/ALP.

[11]  Carlos Castro,et al.  Building Constraint Satisfaction Problem Solvers Using Rewrite Rules and Strategies , 1998, Fundam. Informaticae.

[12]  José Meseguer,et al.  Axiomatizing Reflective Logics and Languages , 1996 .

[13]  Peter Borovanský Le contrôle de la réécriture : étude et implantation d'un formalisme de stratégies , 1998 .

[14]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

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

[16]  Luca Cardelli,et al.  The Modula–3 type system , 1989, POPL '89.

[17]  Robin Milner,et al.  Edinburgh lcf: a mechanized logic of computation , 1978 .

[18]  Martín Abadi,et al.  Dynamic typing in a statically-typed language , 1989, POPL '89.

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

[20]  François Laburthe,et al.  CLAIRE: Combining Objects and Rules for Problem Solving , 1996 .

[21]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[22]  Claude Kirchner,et al.  The Rewriting Calculus as a Semantics of ELAN , 1998, ASIAN.

[23]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[24]  Francis Klay,et al.  Undecidable Properties of Syntactic Theories , 1991, RTA.

[25]  Claude Kirchner,et al.  A Functional View of Rewriting and Strategies for a Semantics of ELAN , 1998, Fuji International Symposium on Functional and Logic Programming.

[26]  Marian Vittek Elan : un cadre logique pour le prototypage de langages de programmation avec contraintes , 1994 .

[27]  Fritz Henglein Dynamic Typing , 1992, ESOP.

[28]  Robin Milner,et al.  Definition of standard ML , 1990 .

[29]  Hélène Kirchner,et al.  A reflective extension of ELAN , 1996, WRLA.

[30]  Xavier Leroy,et al.  Dynamics in ML , 1991, Journal of Functional Programming.

[31]  Jean-Pierre Jouannaud,et al.  Syntactic Theories , 1990, MFCS.

[32]  Thom W. Frühwirth,et al.  Terminological Reasoning with Constraint Handling Rules , 1993, PPCP.

[33]  Marian Vittek,et al.  A Compiler for Nondeterministic Term Rewriting Systems , 1996, RTA.

[34]  Lawrence C. Paulson,et al.  Isabelle: The Next 700 Theorem Provers , 2000, ArXiv.

[35]  Claude Kirchner,et al.  Controlling rewriting by rewriting , 1996, WRLA.

[36]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[37]  M. Clavel,et al.  Principles of Maude , 1996, WRLA.