## Abstract

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 Böhm & 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*
_{ω}.

## Preview

Unable to display preview. Download preview PDF.

## References

Arnon Avron, Furio A. Honsell, and Ian A. Mason. Using typed lambda calculus to implement formal systems on a machine. Technical Report ECS-LFCS-87-31, Laboratory for Foundations of Computer Science, University of Edinburgh, Edinburgh, Scotland, June 1987.

Henk Barendregt. The forest of lambda calculi with types. Talk given at the Workshop on Semantics of Lambda Calculus and Category Theory, Carnegie Mellon University, April 1988.

Val Breazu-Tannen and Jean Gallier. Polymorphic rewriting conserves algebraic strong normalization and confluence. In G. Ausiello, M. Dezani-Ciancaglini, and S. Ronchi Della Rocca, editors,

*Proceedings of the 16th International Colloquium on Automata, Languages and Programming, Stresa, Italy*, pages 137–150. Springer-Verlag LNCS 372, July 1989.Corrado Böhm and Alessandro Berarducci. Automatic synthesis of typed ∧-programs on term algebras.

*Theoretical Computer Science*, 39:135–154, 1985.Loïc Colson. About primitive recursive algorithms. In G. Ausiello, M. Dezani-Ciancaglini, and S. Ronchi Della Rocca, editors,

*Proceedings of the 16th International Colloquium on Automata, Languages and Programming, Stresa, Italy*, pages 194–206. Springer-Verlag LNCS 372, July 1989.Thierry Coquand.

*Une Théorie des Constructions*. PhD thesis, University Paris VII, January 1985.Thierry Coquand and Gérard Huet. Constructions: A higher order proof system for mechanizing mathematics. In

*EUROCAL85*. Springer-Verlag LNCS 203, 1985.Thierry Coquand and Gérard Huet. The Calculus of Constructions.

*Information and Computation*, 76(2/3):95–120, February/March 1988.Thierry Coquand and Christine Paulin-Mohring. Inductively defined types. Talk presented at the

*Workshop on Programming Logic*, University of Göteborg and Chalmers University of Technology, May 1989.N. G. de Bruijn. Lambda-calculus notation with nameless dummies: a tool for automatic formula manipulation with application to the Church-Rosser theorem.

*Indag. Math.*, 34(5):381–392, 1972.Peter Dybjer. An inversion principle for Martin-Löf's type theory. Talk presented at the

*Workshop on Programming Logic*, University of Göteborg and Chalmers University of Technology, May 1989.Steven Fortune, Daniel Leivant, and Michael O'Donnell. The expressiveness of simple and second-order type structures.

*Journal of the ACM*, 30:151–185, 1983.Jean-Yves Girard. Une extension de l'interprétation de Gödel à l'analyse, et son application a l'élimination des coupures dans l'analyse et la théorie des types. In J. E. Fenstad, editor,

*Proceedings of the Second Scandinavian Logic Symposium*, pages 63–92, Amsterdam, London, 1971. North-Holland Publishing Co.Jean-Yves Girard.

*Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur*. PhD thesis, Université Paris VII, 1972.Robert Harper, Furio Honsell, and Gordon Plotkin. A framework for defining logics. In

*Symposium on Logic in Computer Science*, pages 194–204. IEEE, June 1987.Gérard Huet. Formal structures for computation and deduction. Lecture notes for a graduate course at Carnegie Mellon University, May 1986.

Daniel Leivant. Reasoning about functional programs and complexity classes associated with type disciplines. In

*Proceedings of the Twenty Fourth Annual Symposium on the Foundations of Computer Science*, pages 160–169. IEEE, 1983.Daniel Leivant. Contracting proofs to programs. In P. Odifreddi, editor,

*Logic and Computer Science*. Academic Press, 1990. To appear.N. P. Mendler. First-and second-order lambda calculi with recursive types. Technical Report TR 86-764, Department of Computer Science, Cornell University, Ithaca, New York, July 1986.

Paul Francis Mendler.

*Inductive Definition in Type Theory*. PhD thesis, Department of Computer Science, Cornell University, September 1987.John C. Mitchell and Albert Meyer. Second-order logical relations. In Rohit Parikh, editor,

*Logics of Programs*, pages 225–236. Springer-Verlag LNCS 193, June 1985.Michel Parigot. On the representation of data in lambda-calculus. Draft, 1988.

Christine Paulin-Mohring. Extracting

*F*_{ω}programs from proofs in the calculus of constructions. In*Sixteenth Annual Symposium on Principles of Programming Languages*, pages 89–104. ACM Press, January 1989.Christine Paulin-Mohring.

*Extraction de programmes dans le Calcul des Constructions*. PhD thesis, Université Paris VII, January 1989.Frank Pfenning and Peter Lee. Metacircularity in the polymorphic lambda-calculus.

*Theoretical Computer Science*, 1990. To appear. A preliminary version appeared in*TAPSOFT '89, Proceedings of the International Joint Conference on Theory and Practice in Software Development, Barcelona, Spain*, pages 345–359, Springer-Verlag LNCS 352, March 1989.John Reynolds. Types, abstraction and parametric polymorphism. In R. E. A. Mason, editor,

*Information Processing 83*, pages 513–523. Elsevier Science Publishers B. V., 1983.John Reynolds. Three approaches to type structure. In Hartmut Ehrig, Christiane Floyd, Maurice Nivat, and James Thatcher, editors,

*Mathematical Foundations of Software Development*, pages 97–138. Springer-Verlag LNCS 185, March 1985.

## Author information

### Authors and Affiliations

## Editor information

## Rights and permissions

## Copyright information

© 1990 Springer-Verlag Berlin Heidelberg

## About this paper

### Cite this paper

Pfenning, F., Paulin-Mohring, C. (1990). Inductively defined types in the Calculus of Constructions. In: Main, M., Melton, A., Mislove, M., Schmidt, D. (eds) Mathematical Foundations of Programming Semantics. MFPS 1989. Lecture Notes in Computer Science, vol 442. Springer, New York, NY. https://doi.org/10.1007/BFb0040259

### Download citation

DOI: https://doi.org/10.1007/BFb0040259

Published:

Publisher Name: Springer, New York, NY

Print ISBN: 978-0-387-97375-3

Online ISBN: 978-0-387-34808-7

eBook Packages: Springer Book Archive