Skip to main content

A Unifying Approach to Recursive and Co-recursive Definitions

  • Conference paper
  • First Online:
Types for Proofs and Programs (TYPES 2002)

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

Included in the following conference series:

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Abel. Termination checking with types. Technical Report 0201, Institut für Informatik, Ludwig-Maximilians-Universität München, 2002.

    Google Scholar 

  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. H. Barendregt and T. Nipkow, editors. Proceedings of TYPES’93, volume 806 of Lecture Notes in Computer Science. Springer-Verlag, 1994.

    Google Scholar 

  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. 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. T. Coquand. Infinite objects in type theory. In Barendregt and Nipkow [3], pages 62–78.

    Google Scholar 

  7. J. W. de Bakker and J. I. Zucker. Processes and the denotational semantics of concurrency. Information and Control, 54:70–120, 1982.

    Article  MATH  MathSciNet  Google Scholar 

  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. 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. INRIA. The Coq Proof Assistant, 2002. http://coq.inria.fr/doc/main.html.

  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. 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. 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. 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. B. Nordström. Terminating general recursion. BIT, 28:605–619, 1988.

    Article  MATH  MathSciNet  Google Scholar 

  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. R. Pollack. The Theory of LEGO. PhD thesis, University of Edinburgh, 1994. Available at http://www.brics.dk/~pollack/export/thesis.dvi.gz.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics