Abstract
In type theory based logical frameworks, recursive and co-recursive definitions are subject to syntactic restrictions that ensure their termination and productivity. These restrictions however greately decrease the expressive power of the language. In this work we propose a general approach for systematically defining fixed points for a broad class of well given recursive definition. This approach unifies the ones based on well-founded order to the ones based on complete metrics and contractive functions, thus allowing for mixed recursive/corecursive definitions. The resulting theory, implemented in the Coq proof assistant, is quite simple and hence it can be used broadly with a small, sustainable overhead on the user.
Work supported by italian COFIN 2001013518 CoMeta and UE WG 29001 Types.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
A. Abel. Termination checking with types. Technical Report 0201, Institut für Informatik, Ludwig-Maximilians-Universität München, 2002.
A. Balaa and Y. Bertot. Fix-point equations for well-founded recursion in type theory. In Proc. TPHOL 2000, volume 1869 of Lecture Notes in Computer Science, pages 1–16. Springer-Verlag, 2000.
H. Barendregt and T. Nipkow, editors. Proceedings of TYPES’93, volume 806 of Lecture Notes in Computer Science. Springer-Verlag, 1994.
G. Barthe, M. J. Frade, E. Giménez, L. Pinto, and T. Uustalu. Type-based termination of recursive definitions. Mathematical Structures in Computer Science, 2003. To appear.
A. Bove and V. Capretta. Modelling general recursion in type theory. Technical report, Dept. of Computer Science, Chalmers University of Technology, 2002.
T. Coquand. Infinite objects in type theory. In Barendregt and Nipkow [3], pages 62–78.
J. W. de Bakker and J. I. Zucker. Processes and the denotational semantics of concurrency. Information and Control, 54:70–120, 1982.
E. Giménez. Codifying guarded recursion definitions with recursive schemes. In J. Smith, editor, Proc. of TYPES’94, volume 996 of Lecture Notes in Computer Science, pages 39–59, Båstad, Sweden, June 1995. Springer-Verlag.
E. Giménez. Structural recursive definitions in type theory. In K. Larsen, S. Skyum, and G. Winskel, editors, Proc. 25th ICALP, volume 1443 of Lecture Notes in Computer Science, pages 397–408. Springer-Verlag, 1998.
INRIA. The Coq Proof Assistant, 2002. http://coq.inria.fr/doc/main.html.
F. Leclerc and C. Paulin-Mohring. Programming with streams in Coq. A case study: The sieve of Eratosthenes. In Barendregt and Nipkow [3], pages 191–212.
J. Matthews. Recursive function definition over coinductive types. In Y. Bertot, G. Dowek, A. Hirschowitz, C. Paulin, and L. Théry, editors, Proc. TPHOL’99, volume 1690 of Lecture Notes in Computer Science, pages 73–90. Springer-Verlag, 1999.
K. Meinke and J. Tucker. Universal algebra. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic for Computer Science, volume I: Mathematical Structures, pages 189–411. Oxford University Press, 1992.
N. P. Mendler. Recursive types and type constraints in second-order lambda calculus. In Proc. LICS’87, pages 22–25. IEEE, 1987.
B. Nordström. Terminating general recursion. BIT, 28:605–619, 1988.
L. C. Paulson. A fixedpoint approach to (co)inductive and (co)datatype definitions. In G. Plotkin, C. Stirling, and M. Tofte, editors, Proof, Language, and Interaction: Essays in Honour of Robin Milner, pages 187–211. MIT Press, 2000.
R. Pollack. The Theory of LEGO. PhD thesis, University of Edinburgh, 1994. Available at http://www.brics.dk/~pollack/export/thesis.dvi.gz.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Di Gianantonio, P., Miculan, M. (2003). A Unifying Approach to Recursive and Co-recursive Definitions. In: Geuvers, H., Wiedijk, F. (eds) Types for Proofs and Programs. TYPES 2002. Lecture Notes in Computer Science, vol 2646. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-39185-1_9
Download citation
DOI: https://doi.org/10.1007/3-540-39185-1_9
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-14031-3
Online ISBN: 978-3-540-39185-2
eBook Packages: Springer Book Archive