Hostname: page-component-7479d7b7d-m9pkr Total loading time: 0 Render date: 2024-07-10T08:25:25.259Z Has data issue: false hasContentIssue false

Final Dialgebras: From Categories to Allegories

Published online by Cambridge University Press:  15 August 2002

Roland Backhouse
Affiliation:
School of Computer Science and IT, University of Nottingham, Nottingham NG8 1BB, U.K.
Paul Hoogendijk
Affiliation:
Philips Research Laboratories, Prof. Holstlaan 4, 5656 AA Eindhoven, The Netherlands.
Get access

Abstract

The study of inductive and coinductive types (like finite lists and streams, respectively) is usually conducted within the framework of category theory, which to all intents and purposes is a theory of sets and functions between sets. Allegory theory, an extension of category theory due to Freyd, is better suited to modelling relations between sets as opposed to functions between sets. The question thus arises of how to extend the standard categorical results on the existence of final objects in categories (for example, coalgebras and products) to their existence in allegories. The motivation is to streamline current work on generic programming, in which the use of a relational theory rather than a functional theory has proved to be desirable. In this paper, we define the notion of a relational final dialgebra and prove, for an important class of dialgebras, that a relational final dialgebra exists in an allegory if and only if a final dialgebra exists in the underlying category of maps. Instances subsumed by the class we consider include coalgebras and products. An important lemma expresses bisimulations in allegorical terms and proves this equivalent to Aczel and Mendler's categorical definition.

Type
Research Article
Copyright
© EDP Sciences, 1999

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

C.J. Aarts, R.C. Backhouse, P. Hoogendijk, T.S. Voermans and J. van der Woude, A relational theory of datatypes. Available via World-Wide Web at http://www.win.tue.nl/cs/wp/papers (September 1992).
P. Aczel, Non Well-Founded Sets, Number 14 in CSLI Lecture Notes. Center for the Study of Language and Information (Stanford, California, 1988).
P. Aczel and N. Mendler, A final coalgebra theorem, D.H. Pitt, Ed., Category Theory and Computer Science. Springer Verlag, Lecture Notes in Comput. Sci. (1989) 357-365.
R.C. Backhouse, P. de Bruin, P. Hoogendijk, G. Malcolm, T.S. Voermans and J. van der Woude, Polynomial relators, M. Nivat, C.S. Rattray, T. Rus and G. Scollo, Eds., in Proc. of the 2nd Conference on Algebraic Methodology and Software Technology, AMAST'91. Springer-Verlag, Workshops in Computing (1992) 303-326.
Bird, R., de Moor, O. and Hoogendijk, P., Generic functional programming with types and relations. J. Funct. Programming 6 (1996) 1-28. CrossRef
R.S. Bird and O. de Moor, Algebra of Programming. Prentice-Hall International (1996).
H. Doornbos, Reductivity arguments and program construction. Ph.D. Thesis, Eindhoven University of Technology, Department of Mathematics and Computing Science (1996).
P.J. Freyd and A. Scedrov, Categories, Allegories. North-Holland (1990).
Hagino, T., A typed lambda calculus with categorical type constructors, D.H. Pitt, A. Poigne and D.E. Rydeheard, Eds., Category Theory and Computer Science. Springer-Verlag, Lecture Notes in Comput. Sci. 283 (1988) 140-57. CrossRef
P. Hoogendijk, A Generic Theory of Datatypes. Ph.D. Thesis, Department of Mathematics and Computing Science, Eindhoven University of Technology (1997).
Hoogendijk, P. and Backhouse, R., When do datatypes commute? E. Moggi and G. Rosolini, Eds., Category Theory and Computer Science, 7th International Conference. Springer-Verlag, Lecture Notes in Comput. Sci. 1290 (1997) 242-260. CrossRef
P. Hoogendijk and O. de Moor, What is a datatype? Technical Report 96/16, Department of Mathematics and Computing Science, Eindhoven University of Technology, 1996. J. Funct. Programming, to appear.
Jacobs, B. and Rutten, J., A tutorial on (co)algebras and (co)induction. Bull. Eur. Assoc. Theor. Comput. Sci. EATCS 62 (1997) 222-259.
P. Jansson and J. Jeuring, PolyP - a polytypic programming language extension. In POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM Press (1997) 470-482.
Jay, C.B., A semantics for shape. Sci. Comput. Programming 25 (1995) 251-283. CrossRef
C.B. Jay and J.R.B. Cockett, Shapely types and shape polymorphism, D. Sannella, Ed., ESOP '94: 5th European Symposium on Programming. Springer Verlag, Lecture Notes in Comput. Sci. (1994) 302-316.
J. Jeuring, Polytypic pattern matching. In Conference Record of FPCA '95, SIGPLAN-SIGARCH-WG2.8 Conference on Functional Programming Languages and Computer Architecture (1995) 238-248.
Jeuring, J. and Jansson, P., Polytypic programming, J. Launchbury, E. Meijer and T. Sheard, Eds., Proceedings of the Second International Summer School on Advanced Functional Programming Techniques. Springer-Verlag, Lecture Notes in Comput. Sci. 1129 (1996) 68-114. CrossRef
Lambek, J., A fixpoint theorem for complete categories. Math. Z. 103 (1968) 151-161. CrossRef
Lambek, J., Subequalizers. Canad. Math. Bull. 13 (1970) 337-349. CrossRef
S. MacLane, Categories for the Working Mathematician. Springer-Verlag, New York (1971).
Meertens, L., Calculate polytypically! H. Kuchen and S. Doaitse Swierstra, Eds., Proceedings of the Eighth International Symposium PLILP '96 Programming Languages: Implementations, Logics and Programs. Springer Verlag, Lecture Notes in Comput. Sci. 1140 (1996) 1-16. CrossRef
Meijer, E., Fokkinga, M.M. and Paterson, R., Functional programming with bananas, lenses, envelopes and barbed wire. In FPCA91: Functional Programming Languages and Computer Architecture. Springer-Verlag, Lecture Notes in Comput. Sci. 523 (1991) 124-144. CrossRef
Swierstra, S.D. and de Moor, O., Virtual data structures, H. Partsch, B. Möller and S. Schuman, Eds., Formal Program Development. Springer-Verlag, Lecture Notes in Comput. Sci. 755 (1993) 355-371. CrossRef