# Inductive definitions in the system Coq rules and properties

## Abstract

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.

## Keywords

Reduction Rule Elimination Scheme Inductive Type Introduction Rule Strong Normalization## Preview

Unable to display preview. Download preview PDF.

## References

- 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.Ph. Audebaud.
*Extension du Calcul des Constructions par Points fixes*. PhD thesis, Université Bordeaux I, 1992.Google Scholar - 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.C. Böhm and A. Berarducci. Automatic synthesis of typed λ-programs on term algebras.
*Theoretical Computer Science*, 39, 1985.Google Scholar - 5.R.L. Constable et al.
*Implementing Mathematics with the Nuprl Proof Development System*. Prentice-Hall, 1986.Google Scholar - 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.Th. Coquand. Pattern matching with dependent types. In Nordström et al. [17].Google Scholar
- 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.P. Dybjer. Comparing integrated and external logics of functional programs.
*Science of Computer Programming*, 14:59–79, 1990.Google Scholar - 10.G. Dowek et al. The Coq Proof Assistant User's Guide Version 5.6. Rapport Technique 134, INRIA, December 1991.Google Scholar
- 11.G. Huet ed.
*The Calculus of Constructions, Documentation and user's guide, Version V4.10*, 1989. Rapport technique INRIA 110.Google Scholar - 12.H. Geuvers. Type systems for Higher Order Logic. Faculty of Mathematics and Informatics, Catholic University Nijmegen, 1990.Google Scholar
- 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.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.L. Magnusson. The new implementation of ALF. In Nordström et al. [17].Google Scholar
- 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.B. Nordström, K. Petersson, and G. Plotkin, editors.
*Proceedings of the 1992 Workshop on Types for Proofs and Programs*, 1992.Google Scholar - 18.P. Martin-Löf.
*Intuitionistic Type Theory*. Studies in Proof Theory. Bibliopolis, 1984.Google Scholar - 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.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.C. Paulin-Mohring.
*Extraction de programmes dans le Calcul des Constructions*. PhD thesis, Université Paris 7, January 1989.Google Scholar - 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.B. Werner. A normalization proof for an impredicative type system with large elimination over integers. In Nordström et al. [17].Google Scholar