A Unifying Approach to Recursive and Co-recursive Definitions
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.
Unable to display preview. Download preview PDF.
- A. Abel. Termination checking with types. Technical Report 0201, Institut für Informatik, Ludwig-Maximilians-Universität München, 2002.Google Scholar
- 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.Google Scholar
- H. Barendregt and T. Nipkow, editors. Proceedings of TYPES’93, volume 806 of Lecture Notes in Computer Science. Springer-Verlag, 1994.Google Scholar
- 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.Google Scholar
- A. Bove and V. Capretta. Modelling general recursion in type theory. Technical report, Dept. of Computer Science, Chalmers University of Technology, 2002.Google Scholar
- T. Coquand. Infinite objects in type theory. In Barendregt and Nipkow , pages 62–78.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- 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 , pages 191–212.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- N. P. Mendler. Recursive types and type constraints in second-order lambda calculus. In Proc. LICS’87, pages 22–25. IEEE, 1987.Google Scholar
- 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.Google Scholar
- R. Pollack. The Theory of LEGO. PhD thesis, University of Edinburgh, 1994. Available at http://www.brics.dk/~pollack/export/thesis.dvi.gz.