Inductive definitions in the system Coq rules and properties

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 664)


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.


Reduction Rule Elimination Scheme Inductive Type Introduction Rule Strong Normalization 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ph. Audebaud. Partial objects in the calculus of constructions. In Proceedings of the sixth Conf. on Logic in Computer Science. IEEE, 1991.Google Scholar
  2. 2.
    Ph. Audebaud. Extension du Calcul des Constructions par Points fixes. PhD thesis, Université Bordeaux I, 1992.Google Scholar
  3. 3.
    H. Barendregt. Lambda calculi with types. Technical Report 91–19, Catholic University Nijmegen, 1991. in Handbook of Logic in Computer Science, Vol II.Google Scholar
  4. 4.
    C. Böhm and A. Berarducci. Automatic synthesis of typed λ-programs on term algebras. Theoretical Computer Science, 39, 1985.Google Scholar
  5. 5.
    R.L. Constable et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, 1986.Google Scholar
  6. 6.
    Th. Coquand. Metamathematical investigations of a Calculus of Constructions. In P. Oddifredi, editor, Logic and Computer Science. Academic Press, 1990. Rapport de recherche INRIA 1088, also in [11].Google Scholar
  7. 7.
    Th. Coquand. Pattern matching with dependent types. In Nordström et al. [17].Google Scholar
  8. 8.
    Th. Coquand and C. Paulin-Mohring. Inductively defined types. In P. Martin-Löf and G. Mints, editors, Proceedings of Colog'88. Springer-Verlag, 1990. LNCS 417.Google Scholar
  9. 9.
    P. Dybjer. Comparing integrated and external logics of functional programs. Science of Computer Programming, 14:59–79, 1990.Google Scholar
  10. 10.
    G. Dowek et al. The Coq Proof Assistant User's Guide Version 5.6. Rapport Technique 134, INRIA, December 1991.Google Scholar
  11. 11.
    G. Huet ed. The Calculus of Constructions, Documentation and user's guide, Version V4.10, 1989. Rapport technique INRIA 110.Google Scholar
  12. 12.
    H. Geuvers. Type systems for Higher Order Logic. Faculty of Mathematics and Informatics, Catholic University Nijmegen, 1990.Google Scholar
  13. 13.
    H. Geuvers and M.-J. Nederhof. A modular proof of strong normalization for the Calculus of Constructions. Faculty of Mathematics and Informatics, Catholic University Nijmegen, 1989.Google Scholar
  14. 14.
    Z. Luo and R. Pollack. Lego proof development syste: User's manual. Technical Report ECS-LFCS-92-211, University of Edinburgh., 1992.Google Scholar
  15. 15.
    L. Magnusson. The new implementation of ALF. In Nordström et al. [17].Google Scholar
  16. 16.
    N. Mendler. Recursive types and type constraints in second order lambda-calculus. In Symposium on Logic in Computer Science, Ithaca, NY, 1987. IEEE.Google Scholar
  17. 17.
    B. Nordström, K. Petersson, and G. Plotkin, editors. Proceedings of the 1992 Workshop on Types for Proofs and Programs, 1992.Google Scholar
  18. 18.
    P. Martin-Löf. Intuitionistic Type Theory. Studies in Proof Theory. Bibliopolis, 1984.Google Scholar
  19. 19.
    M. Parigot. On the representation of data in lambda-calculus. In CSL'89, volume 440 of LNCS, Kaiserslautern, 1989. Springer-Verlag.Google Scholar
  20. 20.
    C. Paulin-Mohring. Extracting F ω's programs from proofs in the Calculus of Constructions. In Association for Computing Machinery, editor, Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, January 1989.Google Scholar
  21. 21.
    C. Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. PhD thesis, Université Paris 7, January 1989.Google Scholar
  22. 22.
    F. Pfenning and C. Paulin-Mohring. Inductively defined types in the Calculus of Constructions. In Proceedings of Mathematical Foundations of Programming Semantics, LNCS 442. Springer-Verlag, 1990. also technical report CMU-CS-89-209.Google Scholar
  23. 23.
    B. Werner. A normalization proof for an impredicative type system with large elimination over integers. In Nordström et al. [17].Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  1. 1.LIP-IMAG, URA CNRS 1398, Ecole Normale Supérieure de LyonLyon cedex 07France

Personalised recommendations