An introduction to (co)algebra and (co)induction

Algebra is a well-established part of mathematics, dealing with sets with operations satisfying certain properties, like groups, rings , vector spaces, etcetera. Its results are essential throughout mathematics and other sciences. Universal algebra is a part of algebra in which algebraic structures are studied at a high level of abstraction and in which general notions like homomorphism, subalge-bra, congruence are studied in themselves, see e.g. [Coh81, MT92, Wec92]. A further step up the abstraction ladder is taken when one studies algebra with the notions and tools from category theory. This approach leads to a particularly concise notion of what is an algebra (for a functor or for a monad), see for example [Man74]. The conceptual world that we are about to enter owes much to this categorical view, but it also takes inspiration from universal algebra, see e.g. [Rut00]. In general terms, a program in some programming language manipulates data. During the development of computer science over the past few decades it became clear that an abstract description of these data is desirable, for example to ensure that one's program does not depend on the particular representation of the data on which it operates. Also, such abstractness facilitates correctness proofs. This desire led to the use of algebraic methods in computer science, in a branch called algebraic specification or abstract data type theory. The object of study are data types in themselves, using notions and techniques which are familiar from algebra. The data types used by computer scientists are often generated from a given collection of (constructor) operations. The same applies in fact to programs, which themselves can be viewed as data too. It is for this reason that " initiality " of algebras plays such an important role in computer science (as first clearly emphasised in [GTW78]). See for example [EM85, Wir90, Wec92] for more information.

[1]  Daniel Lehmann,et al.  Algebraic specification of data types: A synthetic approach , 1981, Mathematical systems theory.

[2]  Horst Reichel,et al.  An approach to object semantics based on terminal co-algebras , 1995, Mathematical Structures in Computer Science.

[3]  Martin Hofmann,et al.  A unifying type-theoretic framework for objects , 1994, Journal of Functional Programming.

[4]  José Meseguer,et al.  Universal Realization, Persistent Interconnection and Implementation of Abstract Modules , 1982, ICALP.

[5]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[6]  Samuel N. Kamin Final Data Types and Their Specification , 1983, TOPL.

[7]  Alexander Kurz,et al.  Specifying Coalgebras with Modal Logic , 1998, CMCS.

[8]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[9]  Roy L. Crole,et al.  Categories for Types , 1994, Cambridge mathematical textbooks.

[10]  H. Gumm Elements Of The General Theory Of Coalgebras , 1999 .

[11]  D. Turi,et al.  Functional Operational Semantics and its Denotational Dual , 1996 .

[12]  Jirí Adámek,et al.  On final coalgebras of continuous functors , 2003, Theor. Comput. Sci..

[13]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[14]  Lawrence C. Paulson Mechanizing Coinduction and Corecursion in Higher-Order Logic , 1997, J. Log. Comput..

[15]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[16]  Marcelo P. Fiore,et al.  A coinduction principle for recursive data types based on bisimulation , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[17]  T. Melham Automating recursive type definitions in higher order logic , 1989 .

[18]  Bart Jacobs,et al.  Parameters and Parametrization in Specification, Using Distributive Categories , 1995, Fundam. Informaticae.

[19]  Michael Barr,et al.  Terminal Coalgebras in Well-Founded Set Theory , 1993, Theor. Comput. Sci..

[20]  Dusko Pavlovic,et al.  The continuum as a final coalgebra , 2002, Theor. Comput. Sci..

[21]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[22]  Ichiro Hasuo,et al.  Context-Free Languages via Coalgebraic Trace Semantics , 2005, CALCO.

[23]  Răzvan Diaconescu,et al.  Hiding and behaviour: an institutional approach , 1994 .

[24]  Natarajan Shankar,et al.  PVS: Combining Specification, Proof Checking, and Model Checking , 1996, FMCAD.

[25]  Bart Jacobs,et al.  Inheritance and Cofree Constructions , 1996, ECOOP.

[26]  Lawrence S. Moss,et al.  Vicious circles - on the mathematics of non-wellfounded phenomena , 1996, CSLI lecture notes series.

[27]  Steve Awodey,et al.  Category Theory , 2006 .

[28]  Alexandra Silva,et al.  Behavioural Differential Equations and Coinduction for Binary Trees , 2007, WoLLIC.

[29]  J. Goguen,et al.  Extended abstract of a hidden agenda , 1996 .

[30]  William C. Rounds,et al.  Feature Logics , 1997, Handbook of Logic and Language.

[31]  Michael Barr,et al.  Category theory for computing science , 1995, Prentice Hall International Series in Computer Science.

[32]  M. Arbib,et al.  Arrows, Structures, and Functors: The Categorical Imperative , 1975 .

[33]  Jan J. M. M. Rutten,et al.  Universal coalgebra: a theory of systems , 2000, Theor. Comput. Sci..

[34]  Glynn Winskel,et al.  Bisimulation from Open Maps , 1994, Inf. Comput..

[35]  Bart Jacobs,et al.  Structural Induction and Coinduction in a Fibrational Setting , 1998, Inf. Comput..

[36]  Peter Aczel,et al.  A Final Coalgebra Theorem , 1989, Category Theory and Computer Science.

[37]  Alexander Kurz,et al.  Coalgebras and their logics , 2006, SIGA.

[38]  Gordon D. Plotkin,et al.  Towards a mathematical operational semantics , 1997, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[39]  J. W. deBakker,et al.  Control flow semantics , 1996 .

[40]  Wolfgang Wechler,et al.  Universal Algebra for Computer Scientists , 1992, EATCS Monographs on Theoretical Computer Science.

[41]  Jan J. M. M. Rutten,et al.  Initial Algebra and Final Coalgebra Semantics for Concurrency , 1993, REX School/Symposium.

[42]  Lawrence C. Paulson,et al.  Isabelle: The Next 700 Theorem Provers , 2000, ArXiv.

[43]  Alexandra Silva,et al.  Deriving Syntax and Axioms for Quantitative Regular Behaviours , 2009, CONCUR.

[44]  H. Ehrig,et al.  Equational Specifications and Algebras , 1985 .

[45]  Bart Jacobs,et al.  Objects and Classes, Co-Algebraically , 1995, Object Orientation with Parallelism and Persistence.

[46]  Furio Honsell,et al.  Generalized Coiteration Schemata , 2003, CMCS.

[47]  Joseph A. Goguen,et al.  Proof of correctness of object representations , 1994 .

[48]  Bart Jacobs,et al.  Coalgebraic Trace Semantics for Combined Possibilitistic and Probabilistic Systems , 2008, CMCS.

[49]  Andrew M. Pitts,et al.  Relational Properties of Domains , 1996, Inf. Comput..

[50]  S. Lane Categories for the Working Mathematician , 1971 .

[51]  J. Robin B. Cockett,et al.  Strong Categorical Datatypes II: A Term Logic for Categorical Programming , 1995, Theor. Comput. Sci..

[52]  Falk Bartels,et al.  Generalised coinduction , 2003, Mathematical Structures in Computer Science.

[53]  R. F. C. Walters,et al.  Categories and computer science , 1992, Cambridge computer science texts.

[54]  Michael A. Arbib,et al.  Parametrized Data Types Do Not Need Highly Constrained Parameters , 1982, Inf. Control..

[55]  Ana Sokolova,et al.  Generic Trace Theory , 2006, CMCS.

[56]  Benjamin C. Peirce,et al.  Basic Category Theory for Computer Scientists , 1991 .

[57]  Andrew M. Pitts,et al.  A co-Induction Principle for Recursively Defined Domains , 1994, Theor. Comput. Sci..

[58]  Grant Malcolm,et al.  Behavioural Equivalence, Bisimulation, and Minimal Realisation , 1995, COMPASS/ADT.

[59]  Michael A. Arbib,et al.  Algebraic Approaches to Program Semantics , 1986, Texts and Monographs in Computer Science.

[60]  Bart Jacobs,et al.  A Bialgebraic Review of Deterministic Automata, Regular Expressions and Languages , 2006, Essays Dedicated to Joseph A. Goguen.

[61]  J. Lambek,et al.  Introduction to higher order categorical logic , 1986 .

[62]  Bart Jacobs,et al.  Simulations in Coalgebra , 2003, CMCS.

[63]  Furio Honsell,et al.  Final Semantics for untyped lambda-calculus , 1995, TLCA.

[64]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[65]  Bartek Klin,et al.  Coalgebraic Modal Logic Beyond Sets , 2007, MFPS.

[66]  Jan J. M. M. Rutten,et al.  Behavioural differential equations: a coinductive calculus of streams, automata, and power series , 2003, Theor. Comput. Sci..

[67]  Christine Paulin-Mohring,et al.  Inductive Definitions in the system Coq - Rules and Properties , 1993, TLCA.

[68]  Joseph A. Goguen,et al.  Towards an Algebraic Semantics for the Object Paradigm , 1992, COMPASS/ADT.