Abstract
We formalize an extension of the Calculus of Constructions with inductive and coinductive types which allows a more direct description of recursive definitions. The approach we follow is close to the one proposed for Martin-Löf's type theory in [5]. Recursive objects can be defined by fixed-point definitions as in functional programming languages, and a syntactical checking of these definitions avoids the introduction of non-normalizable terms. We show that the conditions for accepting a recursive definition proposed in [5] are not sufficient for the Calculus of Constructions, and we modify them. As a way of justifying our conditions, we develop a general method to codify a fix point definition satisfying them using well-known recursive schemes, like primitive recursion and co-recursion. We also propose different reduction rules from the ones used in [5] in order to obtain a decidable conversion relation for the system.
This research was partially supported by ESPRIT Basic Research Action “Types for Proofs and Programs” and by Programme de Recherches Coordonnées and CNRS Groupement de Recherche “Programmation”.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Peter Aczel. Non-Well-Founded Sets, volume 14 of CLSI Lecture Notes. 1988.
H. Barendregt. Lambda Calculi with types. Technical Report 91-19, Catholic University of Nijmegen, 1991.
T. Coquand. Metamathematical Investigations of a Calculus of Constructions. In P. Odifreddi, editor, Logic and Computer Science, volume 31 of The APIC series, pages 91–122. Academic Press, 1990.
Thierry Coquand. Pattern-Matching in type theory. In Bengt Nordström, Kent Petersson, Gordon Plotkin, editor, Informal Proceedings of the 1992 Workshop on Types for Proofs and Programs, pages 71–84, 1992.
Thierry Coquand. Infinite objects in Type Theory. In Henk Barendregt, Tobias Nipkow, editor, Types for Proofs and Programs, pages 62–78. LNCS 806, 1993.
G. Dowek et al. The Coq Proof assistant user's guide — Version 5.8. Technical Report 154, INRIA Roquencourt, 1993.
Herman Geuvers. Inductive and Coinductive types with iteration and recursion. In Bengt Nordström, Kent Petersson, Gordon Plotkin, editor, Informal Proceedings of the 1992 Workshop on Types for Proofs and Programs, pages 193–217, 1992.
E. Giménez. Codifying guarded definitions with recursive schemes. Technical report, Laboratoire de l'Informatique du Parallélisme, ENS-Lyon, 1994.
Francois Leclerc and Christine Paulin-Mohring. Programming with streams in Coq. A case study: the Sieve of Eratosthenes. In Henk Barendregt, Tobias Nipkow, editor, Types for Proofs and Programs, pages 191–212. LNCS 806, 1993.
F.P. Mendier. Inductive Definitions in Type Theory. PhD thesis, Cornell University, 1987.
Christine Paulin-Mohring. Extraction de programmes dans le Calcul des Constructions. PhD thesis, Université Paris VII, 1989.
Christine Paulin-Mohring. Inductive definitions in the system Coq: Rules and Properties. In M. Bezem, J.F. Groote, editor, Proceedings of the TLCA, 1993.
Lawrence Paulson. Co-induction and Co-recursion in Higher-order Logic. Technical report, Computer Laboratory, University of Cambridge, 1993.
Andrew M. Pitts. A co-induction principle for recursively defined domains. Technical Report 252, Computer Laboratory, University of Cambridge, April 1992.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Giménez, E. (1995). Codifying guarded definitions with recursive schemes. In: Dybjer, P., Nordström, B., Smith, J. (eds) Types for Proofs and Programs. TYPES 1994. Lecture Notes in Computer Science, vol 996. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60579-7_3
Download citation
DOI: https://doi.org/10.1007/3-540-60579-7_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60579-9
Online ISBN: 978-3-540-47770-9
eBook Packages: Springer Book Archive