Inductively Defined Types in the Calculus of Constructions

We define the notion of an inductively defined type in the Calculus of Constructions and show how inductively defined types can be represented by closed types. We show that all primitive recursive functionals over these inductively defined types are also representable. This generalizes work by Bohm & Berarducci on synthesis of functions on term algebras in the second-order polymorphic λ-calculus (F 2). We give several applications of this generalization, including a representation of F 2-programs in F 3, along with a definition of functions reify, reflect, and eval for F 2 in F 3. We also show how to define induction over inductively defined types and sketch some results that show that the extension of the Calculus of Construction by induction principles does not alter the set of functions in its computational fragment, F ω. This is because a proof by induction can be realized by primitive recursion, which is already definable in F ω.

[1]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..

[2]  P. Mendler Inductive Definition in Type Theory , 1988 .

[3]  Daniel Leivant,et al.  The Expressiveness of Simple and Second-Order Type Structures , 1983, JACM.

[4]  J. Y. Girard,et al.  Interpretation fonctionelle et elimination des coupures dans l'aritmetique d'ordre superieur , 1972 .

[5]  Gerard Huet,et al.  Formal structures for computation and deduction , 1986 .

[6]  Loïc Colson About Primitive Recursive Algorithms , 1991, Theor. Comput. Sci..

[7]  J. Girard Une Extension De ĽInterpretation De Gödel a ĽAnalyse, Et Son Application a ĽElimination Des Coupures Dans ĽAnalyse Et La Theorie Des Types , 1971 .

[8]  Daniel Leivant,et al.  Contracting proofs to programs , 1989 .

[9]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[10]  Michel Parigot On the Representation of Data in Lambda-Calculus , 1989, CSL.

[11]  Peter Lee,et al.  Metacircularity in the Polymorphic lambda-Calculus , 1991, Theor. Comput. Sci..

[12]  Thierry Coquand,et al.  Constructions: A Higher Order Proof System for Mechanizing Mathematics , 1985, European Conference on Computer Algebra.

[13]  Val Tannen,et al.  Polymorphic Rewriting Conserves Algebraic Strong Normalization and Confluence Val Tannen , 2011 .

[14]  T. Coquand Une théorie des constructions , 1985 .

[15]  John C. Reynolds,et al.  Three Approaches to Type Structure , 1985, TAPSOFT, Vol.1.

[16]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[17]  Christine Paulin-Mohring,et al.  Extracting ω's programs from proofs in the calculus of constructions , 1989, POPL '89.

[18]  John C. Mitchell,et al.  Second-Order Logical Relations (Extended Abstract) , 1985, Logic of Programs.

[19]  Loïc Colson About Primitive Recursive Algorithms , 1989, ICALP.

[20]  Thierry Coquand,et al.  Inductively defined types , 1988, Conference on Computer Logic.

[21]  J. Fenstad Proceedings of the Second Scandinavian Logic Symposium , 1971 .

[22]  Christine Paulin-Mohring Extraction de programmes dans le Calcul des Constructions. (Program Extraction in the Calculus of Constructions) , 1989 .

[23]  Daniel Leivant Reasoning about functional programs and complexity classes associated with type disciplines , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[24]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[25]  N. P. Mendler Firstand Second-Order Lambda Calculi with Recursive Types , 1986 .

[26]  F. Honsell,et al.  A Framework for De ning LogicsRobert Harper , 1987 .