Higher-order rewriting with types and arities

Background. Higher-order rewrite rules are increasingly used in programming languages and logical systems, with three main goals: to set up a general infrastructure for computations, to describe rule-based decision procedures, and to encode other logical systems. As usual, the choice of the syntax in which the rules are expressed plays a crucial role, as well as the definition of rewriting itself. Several proposals for frameworks of higher-order rewriting (we will not consider here the explicit substitutions calculi) have been made by Klop, Khasidashvili, Nipkow, and by Jouannaud and Okada. We will compare them with an example: the encoding of λ-calculus with the β-reduction rule (λx.M)N → M{x 7→ N}. Note that here the substitution {x 7→ N} is defined on a meta-level, that is, the expression M{x 7→ N} is not a λ-term. In an encoding of logic, it is necessary to internalize the definition of substitution. The first proposal for a format of higher-order rewriting are the Combinatory Reduction Systems (CRSs) defined by Klop [?], inspired by the Contraction Schemes of Aczel [?]. The encoding of the β-reduction rule as a CRS is as follows: app(abs([x]Z(x)), Z ′) → Z(Z ′). Here app and abs are function symbols, the first of arity 2 and the second of arity 1. Both Z and Z ′ are so-called metavariables; they stand for the free variables to be instantiated when applying the rule. Like function symbols they come equipped with an arity. Here Z has arity 1 and Z ′ has arity 0. The abstraction operator [ ] is built-in. The rewrite step (λx. yx)v → yv in the untyped λ-calculus is obtained using the following substitution σ: {Z 7→ λu. app(y, u), Z ′ 7→ v}. In general, a substitution τ assigns to a meta-variable U of arity n a so-called substitute of the form λ(x1, . . . , xn). t. The result (written in postfix notation) of applying τ to a term U(t1, . . . , tn)

[1]  R. Milner Mathematical Centre Tracts , 1976 .

[2]  Gerard Huet,et al.  Conflunt reductions: Abstract properties and applications to term rewriting systems , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[3]  Gérard P. Huet,et al.  Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980, J. ACM.

[4]  Mark E. Stickel,et al.  Complete Sets of Reductions for Some Equational Theories , 1981, JACM.

[5]  Hélène Kirchner,et al.  Completion of a Set of Rules Modulo a Set of Equations , 1986, SIAM J. Comput..

[6]  Tobias Nipkow,et al.  Higher-order critical pairs , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

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

[8]  Claude Marché,et al.  Normalised rewriting and normalised completion , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[9]  J. Jouannaud,et al.  Abstract Data Type Systems , 1997, Theor. Comput. Sci..

[10]  Evelyne Contejean,et al.  AC-Unification of Higher-Order Patterns , 1997, CP.

[11]  Tobias Nipkow,et al.  Higher-Order Rewrite Systems and Their Confluence , 1998, Theor. Comput. Sci..

[12]  Jean-Pierre Jouannaud,et al.  Higher-order recursive path orderings , 1998 .

[13]  Albert Rubio,et al.  The higher-order recursive path ordering , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[14]  Jean-Pierre Jouannaud,et al.  The Calculus of algebraic Constructions , 1999, RTA.

[15]  Albert Rubiozy Higher-order Recursive Path Orderings , 1999 .

[16]  Albert Rubio,et al.  A Monotonic Higher-Order Semantic Path Ordering , 2001, LPAR.

[17]  Pierre Castéran,et al.  Inductive Data Types , 2004 .

[18]  Frédéric Blanqui Definitions by rewriting in the Calculus of Constructions , 2005, Math. Struct. Comput. Sci..