A Unifying Approach to Recursive and Co-recursive Definitions

  • Pietro Di Gianantonio
  • Marino Miculan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2646)


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.

Unable to display preview. Download preview PDF.


  1. [1]
    A. Abel. Termination checking with types. Technical Report 0201, Institut für Informatik, Ludwig-Maximilians-Universität München, 2002.Google Scholar
  2. [2]
    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
  3. [3]
    H. Barendregt and T. Nipkow, editors. Proceedings of TYPES’93, volume 806 of Lecture Notes in Computer Science. Springer-Verlag, 1994.Google Scholar
  4. [4]
    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
  5. [5]
    A. Bove and V. Capretta. Modelling general recursion in type theory. Technical report, Dept. of Computer Science, Chalmers University of Technology, 2002.Google Scholar
  6. [6]
    T. Coquand. Infinite objects in type theory. In Barendregt and Nipkow [3], pages 62–78.Google Scholar
  7. [7]
    J. W. de Bakker and J. I. Zucker. Processes and the denotational semantics of concurrency. Information and Control, 54:70–120, 1982.MATHCrossRefMathSciNetGoogle Scholar
  8. [8]
    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
  9. [9]
    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
  10. [10]
    INRIA. The Coq Proof Assistant, 2002. http://coq.inria.fr/doc/main.html.
  11. [11]
    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.Google Scholar
  12. [12]
    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
  13. [13]
    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
  14. [14]
    N. P. Mendler. Recursive types and type constraints in second-order lambda calculus. In Proc. LICS’87, pages 22–25. IEEE, 1987.Google Scholar
  15. [15]
    B. Nordström. Terminating general recursion. BIT, 28:605–619, 1988.MATHCrossRefMathSciNetGoogle Scholar
  16. [16]
    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
  17. [17]
    R. Pollack. The Theory of LEGO. PhD thesis, University of Edinburgh, 1994. Available at http://www.brics.dk/~pollack/export/thesis.dvi.gz.

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Pietro Di Gianantonio
    • 1
  • Marino Miculan
    • 1
  1. 1.Dipartimento di Matematica e InformaticaUniversità di UdineUdineITALY

Personalised recommendations