Skip to main content

Inductively defined types in the Calculus of Constructions

  • Conference paper
  • First Online:
Mathematical Foundations of Programming Semantics (MFPS 1989)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 442))

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 ω.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    MathSciNet  Google Scholar 

  4. Corrado Böhm and Alessandro Berarducci. Automatic synthesis of typed ∧-programs on term algebras. Theoretical Computer Science, 39:135–154, 1985.

    Article  MathSciNet  MATH  Google Scholar 

  5. 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.

    MathSciNet  Google Scholar 

  6. Thierry Coquand. Une Théorie des Constructions. PhD thesis, University Paris VII, January 1985.

    Google Scholar 

  7. Thierry Coquand and Gérard Huet. Constructions: A higher order proof system for mechanizing mathematics. In EUROCAL85. Springer-Verlag LNCS 203, 1985.

    Google Scholar 

  8. Thierry Coquand and Gérard Huet. The Calculus of Constructions. Information and Computation, 76(2/3):95–120, February/March 1988.

    Article  MathSciNet  Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Article  MathSciNet  MATH  Google Scholar 

  13. 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.

    Google Scholar 

  14. Jean-Yves Girard. Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur. PhD thesis, Université Paris VII, 1972.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. Gérard Huet. Formal structures for computation and deduction. Lecture notes for a graduate course at Carnegie Mellon University, May 1986.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. Daniel Leivant. Contracting proofs to programs. In P. Odifreddi, editor, Logic and Computer Science. Academic Press, 1990. To appear.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. Paul Francis Mendler. Inductive Definition in Type Theory. PhD thesis, Department of Computer Science, Cornell University, September 1987.

    Google Scholar 

  21. 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.

    MathSciNet  Google Scholar 

  22. Michel Parigot. On the representation of data in lambda-calculus. Draft, 1988.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. Christine Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. PhD thesis, Université Paris VII, January 1989.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. 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.

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

M. Main A. Melton M. Mislove D. Schmidt

Rights and permissions

Reprints 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

Publish with us

Policies and ethics