From Grammars and Automata to Algebras and Coalgebras

  • Peter Padawitz
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6742)


The increasing application of notions and results from category theory, especially from algebra and coalgebra, has revealed that any formal software or hardware model is constructor- or destructor-based, a white-box or a black-box model. A highly-structured system may involve both constructor- and destructor-based components. The two model classes and the respective ways of developing them and reasoning about them are dual to each other. Roughly said, algebras generalize the modeling with context-free grammars, word languages and structural induction, while coalgebras generalize the modeling with automata, Kripke structures, streams, process trees and all other state- or object-oriented formalisms. We summarize the basic concepts of co/algebra and illustrate them at a couple of signatures including those used in language or compiler construction like regular expressions or acceptors.


Regular Expression Horn Clause Relation Symbol Kripke Structure Syntax Tree 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adámek, J.: Introduction to Coalgebra. Theory and Applications of Categories 14, 157–199 (2005)MathSciNetzbMATHGoogle Scholar
  2. 2.
    Adámek, J.: Final coalgebras are ideal completions of initial algebras. Journal of Logic and Computation 12, 217–242 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Aczel, P., Adámek, J., Velebil, J.: A Coalgebraic View of Infinite Trees and Iteration. In: Proc. Coalgebraic Methods in Computer Science. ENTCS, vol. 44, pp. 1–26. Elsevier, Amsterdam (2001)Google Scholar
  4. 4.
    Adámek, J., Milius, S., Moss, L.S.: Initial algebras and terminal coalgebras: a survey, draft of February 7, TU Braunschweig (2011)Google Scholar
  5. 5.
    Adámek, J., Porst, H.-E.: From varieties of algebras to covarieties of coalgebras. In: Proc. Coalgebraic Methods in Computer Science. ENTCS, vol. 44, pp. 27–46. Elsevier, Amsterdam (2001)Google Scholar
  6. 6.
    Adámek, J., Porst, H.-E.: On Tree Coalgebras and Coalgebra Presentations. Theoretical Computer Science 311, 257–283 (2004)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Arbib, M.A.: Free dynamics and algebraic semantics. In: Karpinski, M. (ed.) FCT 1977. LNCS, vol. 56, pp. 212–227. Springer, Heidelberg (1977)CrossRefGoogle Scholar
  8. 8.
    Arbib, M.A., Manes, E.G.: Parametrized Data Types Do Not Need Highly Constrained Parameters. Information and Control 52, 139–158 (1982)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Astesiano, E., Kreowski, H.-J., Krieg-Brückner, B. (eds.): Algebraic Foundations of Systems Specification. IFIP State-of-the-Art Report. Springer, Heidelberg (1999)zbMATHGoogle Scholar
  10. 10.
    Barr, M.: Coequalizers and Free Triples. Math. Zeitschrift 116, 307–322 (1970)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Barr, M.: Terminal coalgebras in well-founded set theory. Theoretical Computer Science 114, 299–315 (1993)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    van den Brand, M.G.J., Heering, J., Klint, P., Olivier, P.A.: Compiling Rewrite Systems: The ASF+SDF Compiler. ACM TOPLAS 24 (2002)Google Scholar
  13. 13.
    Brzozowski, J.A.: Derivatives of regular expressions. Journal ACM 11, 481–494 (1964)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification, vol. 1. Springer, Heidelberg (1985)CrossRefzbMATHGoogle Scholar
  15. 15.
    Gibbons, J., Hutton, G., Altenkirch, T.: When is a function a fold or an unfold? In: Proc. Coalgebraic Methods in Computer Science. ENTCS, vol. 44, pp. 146–159. Elsevier, Amsterdam (2001)Google Scholar
  16. 16.
    Goguen, J., Malcolm, G.: A Hidden Agenda. Theoretical Computer Science 245, 55–101 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Goguen, J.A., Thatcher, J.W., Wagner, E.G.: An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types. In: Yeh, R. (ed.) Current Trends in Programming Methodology, vol. 4, pp. 80–149. Prentice-Hall, Englewood Cliffs (1978)Google Scholar
  18. 18.
    Goguen, J.A., Thatcher, J.W., Wagner, E.G., Wright, J.B.: Initial Algebra Semantics and Continuous Algebras. J. ACM 24, 68–95 (1977)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Gumm, H.P., Schröder, T.: Coalgebras of bounded type. Math. Structures in Computer Science 12, 565–578 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  20. 20.
    Gumm, H.P.: Universelle Coalgebra. In: Ihringer, T. (ed.) Allgemeine Algebra. Heldermann Verlag (2003)Google Scholar
  21. 21.
    Guttag, J., Horowitz, E., Musser, D.R.: Abstract Data Types and Software Validation. Communications of the ACM 21, 1048–1064 (1978)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Hinze, R.: Adjoint Folds and Unfolds. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) MPC 2010. LNCS, vol. 6120, pp. 195–228. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  23. 23.
    Hinze, R.: Reasoning about Codata. In: Horváth, Z., Plasmeijer, R., Zsók, V. (eds.) CEFP 2009. LNCS, vol. 6299, pp. 42–93. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  24. 24.
    Jacobs, B.: Invariants, Bisimulations and the Correctness of Coalgebraic Refinements. In: Johnson, M. (ed.) AMAST 1997. LNCS, vol. 1349, pp. 276–291. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  25. 25.
    Jacobs, B.: Introduction to Coalgebra. Radboud University, Nijmegen (2005)Google Scholar
  26. 26.
    Jacobs, B.: A Bialgebraic Review of Deterministic Automata, Regular Expressions and Languages. In: Futatsugi, K., Jouannaud, J.-P., Bevilacqua, V. (eds.) Algebra, Meaning, and Computation. LNCS, vol. 4060, pp. 375–404. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  27. 27.
    Kamin, S.: Final Data Type Specifications: A New Data Type Specification Method. ACM TOPLAS 5, 97–123 (1983)CrossRefzbMATHGoogle Scholar
  28. 28.
    Lambek, J.: A fixpoint theorem for complete categories. Math. Zeitschrift 103, 151–161 (1968)MathSciNetCrossRefzbMATHGoogle Scholar
  29. 29.
    Lehmann, D.J., Smyth, M.B.: Algebraic Specification of Data Types: A Synthetic Approach. Math. Systems Theory 14, 97–139 (1981)MathSciNetCrossRefzbMATHGoogle Scholar
  30. 30.
    Meseguer, J., Goguen, J.A.: Initiality, Induction and Computability. In: Nivat, M., Reynolds, J. (eds.) Algebraic Methods in Semantics, pp. 459–541. Cambridge University Press, Cambridge (1985)Google Scholar
  31. 31.
    Meseguer, J., Rosu, G.: The Rewriting Logic Semantics Project. Theoretical Computer Science 373 (2007)Google Scholar
  32. 32.
    van der Meulen, E.A.: Deriving incremental implementations from algebraic specifications. In: Proc. 2nd AMAST, pp. 277–286. Springer, Heidelberg (1992)Google Scholar
  33. 33.
    Padawitz, P.: Proof in Flat Specifications. In: Astesiano, E., Kreowski, H.-J., Krieg-Brückner, B. (eds.) Algebraic Foundations of Systems Specification. IFIP State-of-the-Art Report, pp. 321–384. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  34. 34.
    Padawitz, P.: Swinging Types = Functions + Relations + Transition Systems. Theoretical Computer Science 243, 93–165 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  35. 35.
    Padawitz, P.: Dialgebraic Specification and Modeling, slides, TU Dortmund (2011),
  36. 36.
    Padawitz, P.: Algebraic compilers and their implementation in Haskell, Sierra Nevada IFIP WG 1.3 Meeting (January 14-18, 2008)Google Scholar
  37. 37.
    Padawitz, P.: Algebraic Model Checking. In: Drewes, F., Habel, A., Hoffmann, B., Plump, D. (eds.) Manipulation of Graphs, Algebras and Pictures. Electronic Communications of the EASST, vol. 26 (2010), extended slides
  38. 38.
    Padawitz, P.: Expander2 as a Prover and Rewriter,
  39. 39.
    Padawitz, P.: Übersetzerbau, course notes, TU Dortmund (2010),
  40. 40.
    Rutten, J.J.M.M.: Universal Coalgebra: A Theory of Systems. Theoretical Computer Science 249, 3–80 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  41. 41.
    Rutten, J.J.M.M.: Automata and coinduction (an exercise in coalgebra). In: Sangiorgi, D., de Simone, R. (eds.) CONCUR 1998. LNCS, vol. 1466, pp. 194–218. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  42. 42.
    Rutten, J.J.M.M.: Behavioural differential equations: a coinductive calculus of streams, automata, and power series. Theoretical Computer Science 308, 1–53 (2003)MathSciNetCrossRefzbMATHGoogle Scholar
  43. 43.
    Rutten, J.J.M.M., Turi, D.: Initial Algebra and Final Coalgebra Semantics for Concurrency, Report CS-R9409, CWI, Amsterdam (1994)Google Scholar
  44. 44.
    Sen, K., Rosu, G.: Generating Optimal Monitors for Extended Regular Expressions. In: Proc. Runtime Verification 2003. ENTCS, vol. 89, pp. 226–245. Elsevier, Amsterdam (2003)Google Scholar
  45. 45.
    Thatcher, J.W., Wagner, E.G., Wright, J.B.: More on Advice on Structuring Compilers and Proving Them Correct. Theoretical Computer Science 15, 223–249 (1981)CrossRefzbMATHGoogle Scholar
  46. 46.
    Visser, E.: Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems. In: Lengauer, C., Batory, D., Blum, A., Vetta, A. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 216–238. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  47. 47.
    Wand, M.: Final algebra semantics and data type extension. J. Comp. Syst. Sci. 19, 27–44 (1979)MathSciNetCrossRefzbMATHGoogle Scholar
  48. 48.
    Wirsing, M.: Algebraic Specification. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, pp. 675–788. Elsevier, Amsterdam (1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Peter Padawitz
    • 1
  1. 1.Technical University of DortmundGermany

Personalised recommendations