Inductive Definitions in the system Coq - Rules and Properties

In the pure Calculus of Constructions, it is possible to represent data structures and predicates using higher-order quantification. However, this representation is not satisfactory, from the point of view of both the efficiency of the underlying programs and the power of the logical system. For these reasons, the calculus was extended with a primitive notion of inductive definitions [8]. This paper describes the rules for inductive definitions in the system Coq. They are general enough to be seen as one formulation of adding inductive definitions to a typed lambda-calculus. We prove strong normalization for a subsystem of Coq corresponding to the pure Calculus of Constructions plus Inductive Definitions with only weak eliminations.

[1]  C. Audebaud Extension du calcul des constructions par points fixes , 1992 .

[2]  Mark-Jan Nederhof,et al.  Modular proof of strong normalization for the calculus of constructions , 1991, Journal of Functional Programming.

[3]  Frank Pfenning,et al.  Inductively Defined Types in the Calculus of Constructions , 1989, Mathematical Foundations of Programming Semantics.

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

[5]  Christine C. Paulin Extraction de programmes dans le calcul des constructions , 1989 .

[6]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

[7]  Peter Dybjer,et al.  Comparing Integrated and External Logics of Functional Programs , 1990, Sci. Comput. Program..

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

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

[10]  PROCEEDINGS OF THE 1992 WORKSHOP ON TYPES FOR PROOFS AND PROGRAMS Bastad , .

[11]  N. P. Mendler,et al.  Recursive Types and Type Constraints in Second-Order Lambda Calculus , 1987, LICS.

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

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

[14]  Per Martin-Löf,et al.  Intuitionistic type theory , 1984, Studies in proof theory.

[15]  Thierry Coquand,et al.  Pattern Matching with Dependent Types , 1992 .

[16]  T. Coquand,et al.  Metamathematical investigations of a calculus of constructions , 1989 .

[17]  Philippe Audebaud,et al.  Partial objects in the calculus of constructions , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.