Hostname: page-component-cd9895bd7-dk4vv Total loading time: 0 Render date: 2024-12-18T04:32:17.576Z Has data issue: false hasContentIssue false

Well-founded coalgebras, revisited

Published online by Cambridge University Press:  09 February 2016

JEAN-BAPTISTE JEANNIN
Affiliation:
Computer Science, Cornell University, Ithaca, New York 14853-7501, U.S.A. Email: [email protected]
DEXTER KOZEN
Affiliation:
Computer Science, Cornell University, Ithaca, New York 14853-7501, U.S.A. Email: [email protected]
ALEXANDRA SILVA
Affiliation:
Intelligent Systems, Radboud University Nijmegen, Postbus 9010, 6500 GL Nijmegen, the Netherlands Email: [email protected]
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Theoretical models of recursion schemes have been well studied under the names well-founded coalgebras, recursive coalgebras, corecursive algebras and Elgot algebras. Much of this work focuses on conditions ensuring unique or canonical solutions, e.g. when the coalgebra is well founded.

If the coalgebra is not well founded, then there can be multiple solutions. The standard semantics of recursive programs gives a particular solution, typically the least fixpoint of a certain monotone map on a domain whose least element is the totally undefined function; but this solution may not be the desired one. We have recently proposed programming language constructs to allow the specification of alternative solutions and methods to compute them. We have implemented these new constructs as an extension of OCaml.

In this paper, we prove some theoretical results characterizing well-founded coalgebras, along with several examples for which this extension is useful. We also give several examples that are not well founded but still have a desired solution. In each case, the function would diverge under the standard semantics of recursion, but can be specified and computed with the programming language constructs we have proposed.

Type
Paper
Copyright
Copyright © Cambridge University Press 2016 

References

Adámek, J., Lücke, D. and Milius, S. (2007). Recursive coalgebras of finitary functors. Theoretical Informatics and Applications 41 (4) 447462.CrossRefGoogle Scholar
Adámek, J., Milius, S. and Velebil, S. (2006). Elgot algebras. Logical Methods in Computer Science 2 (5:4) 131.Google Scholar
Capretta, V. (2007). An introduction to corecursive algebras. http://www.cs.ru.nl/~venanzio/publications/brouwer_seminar_4_12_2007.pdf.Google Scholar
Capretta, V., Uustalu, T. and Vene, V. (2009). Corecursive algebras: A study of general structured corecursion. In: Vinicius, M., Oliveira, M. and Woodcock, J. (eds.) Formal Methods: Foundations and Applications, 12th Brazilian Symp. Formal Methods (SBMF 2009). Lecture Notes in Computer Science 5902, Springer, Berlin, 84100.Google Scholar
Dershowitz, N. and Jouannaud, J.-P. (1990). Rewrite systems. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, Formal Models and Semantics, volume B, chapter 6, Elsevier, 243320.Google Scholar
Gries, D. and Schneider, F.B. (1994). A Logical Approach to Discrete Math. Springer-Verlag.Google Scholar
Harel, D. and Kozen, D. (1984). A programming language for the inductive sets, and applications. Information and Control 63 (1–2) 118139.CrossRefGoogle Scholar
Hirschowitz, T., Leroy, X. and Wells, J.B. (2003). Compilation of extended recursion in call-by-value functional languages. In: PPDP 2003 160–171.Google Scholar
Jeannin, J.-B., Kozen, D. and Silva, A. (December 2012). CoCaml: Programming with coinductive types. Technical Report http://hdl.handle.net/1813/30798, Computing and Information Science, Cornell University.Google Scholar
Jeannin, J.-B., Kozen, D. and Silva, A. (March 2013). Language constructs for non-well-founded computation. In: Felleisen, M. and Gardner, P. (eds.) 22nd European Symposium on Programming (ESOP 2013). Lecture Notes in Computer Science 7792, Springer, Rome, Italy, 6180.Google Scholar
Kozen, D. (May 2011). Realization of coinductive types. In: Mislove, M. and Ouaknine, J. (eds.) Proceedings of the 27th Conf. Math. Found. Programming Semantics (MFPS XXVII), Pittsburgh, PA. Elsevier Electronic Notes in Theoretical Computer Science 148155.Google Scholar
Lambek, J. (1968). A fixpoint theorem for complete categories. Mathematische Zeitschrift 103 (2) 151161.CrossRefGoogle Scholar
Mac Lane, S. (1971). Categories for the Working Matematician. Springer.CrossRefGoogle Scholar
Osius, G. (1974). Categorical set theory: A characterization of the category of sets. Journal of Pure and Applied Algebra 4 79119.Google Scholar
Papadimitriou, C. (1993). Computational Complexity. Addison Wesley.Google Scholar
Sipser, M. (2006). Introduction to the Theory of Computation, 2nd edition, PWS Publishing.Google Scholar
Sperber, M. and Thiemann, P. (September 1998). ML and the address operator. In: Proceedings of the ACM SIGPLAN Workshop on ML 152–153.Google Scholar
Syme, D. (2006). Initializing mutually referential abstract objects: The value recursion challenge. Electronic Notes in Theoretical Computer Science, 148 (2) 325.CrossRefGoogle Scholar
Taylor, P. (1999). Practical Foundations of Mathematics. Cambridge University Press.Google Scholar
Trancón y Widemann, B. (August 2011). Coalgebraic semantics of recursion on circular data structures. In: Cirstea, C., Seisenberger, M. and Wilkinson, T. (eds.) CALCO Young Researchers Workshop (CALCO-jnr 2011) 28–42.Google Scholar