Skip to main content

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

Abstract

An introduction to coalgebraic specification is presented via examples. A coalgebraic specification describes a collection of coalgebras satisfying certain assertions. It is thus an axiomatic description of a particular class of mathematical structures. Such specifications are especially suitable for state-based dynamical systems in general, and for classes in object-oriented programming languages in particular. This chapter will gradually introduce the notions of bisimilarity, invariance, component classes, temporal logic and refinement in a coalgebraic setting. Besides the running example of the coalgebraic specification of (possibly infinite) binary trees, a specification of Peterson’s mutual exclusion algorithm is elaborated in detail.

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. K. R. Apt and E.-R. Olderog. Verification of Sequential and Concurrent Programs. Springer, 2nd revised edition, 1997.

    Google Scholar 

  2. E. Astesiano, H.-J. Kreowski, and B. Krieg-BrĂĽckner, editors. Algebraic Foundations of Systems Specification. IFIP State-of-the-Art Reports. Springer, 1999.

    Google Scholar 

  3. C. Cïrstea. Coalgebra semantics for hidden algebra: parametrised objects and inheritance. In F. Parisi Presicce, editor, Recent Trends in Data Type Specification, number 1376 in Lecture Notes in Computer Science, pages 174–189. Springer, Berlin, 1998.

    Google Scholar 

  4. A. Corradini, M. Lenisa, and U. Montanari, editors. Coalgebraic Methods in Computer Science (CMCS’01), number 44 in Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam, 2001. http://www.elsevier.nl/locate/entcs/volume44.html.

  5. B. A. Davey and H. A. Priestley. Introduction to Lattices and Order. Math. Textbooks. Cambridge Univ. Press, 1990.

    Google Scholar 

  6. E. A. Emerson. Temporal and modal logic. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B, pages 995–1072. Elsevier/MIT Press, 1990.

    Google Scholar 

  7. H. P. Gumm. Elements of the general theory of coalgebras. Notes of lectures given at LUATCS’99: Logic, Universal Algebra, Theoretical Computer Science, Johannesburg. Available as http://www.mathematik.uni-marburg.de/~gumm/Papers/Luatcs.ps, 1999.

  8. U. Hensel. Definition and Proof Principles for Data and Processes. Ph Dth esis, Techn. Univ. Dresden, Germany, 1999.

    Google Scholar 

  9. U. Hensel, M. Huisman, B. Jacobs, and H. Tews. Reasoning about classes in objectoriented languages: Logical models and tools. In C. Hankin, editor, European Symposium on Programming, number 1381 in Lecture Notes in Computer Science, pages 105–121. Springer, Berlin, 1998.

    Google Scholar 

  10. C. Hermida and B. Jacobs. Structural induction and coinduction in a fibrational setting. Information & Computation, 145:107–152, 1998.

    Article  MATH  MathSciNet  Google Scholar 

  11. M.W. Hirsch and S. Smale. Differential Equations, Dynamical Systems, and Linear Algebra. Academic Press, New York, 1974.

    MATH  Google Scholar 

  12. B. Jacobs. Mongruences and cofree coalgebras. In V. S. Alagar and M. Nivat, editors, Algebraic Methodology and Software Technology, number 936 in Lecture Notes in Computer Science, pages 245–260. Springer, Berlin, 1995.

    Google Scholar 

  13. B. Jacobs. Inheritance and cofree constructions. In P. Cointe, editor, European Conference on Object-Oriented Programming, number 1098 in Lecture Notes in Computer Science, pages 210–231. Springer, Berlin, 1996.

    Google Scholar 

  14. B. Jacobs. Objects and classes, co-algebraically. In B. Freitag, C. B. Jones, C. Lengauer, and H.-J. Schek, editors, Object-Orientation with Parallelism and Persistence, pages 83–103. Kluwer Acad. Publ., 1996.

    Google Scholar 

  15. B. Jacobs. Behaviour-refinement of coalgebraic specifications with coinductive correctness proofs. In M. Bidoit and M. Dauchet, editors, TAPSOFT’97: Theory and Practice of Software Development, number 1214 in Lecture Notes in Computer Science, pages 787–802. Springer, Berlin, 1997.

    Chapter  Google Scholar 

  16. B. Jacobs. Invariants, bisimulations and the correctness of coalgebraic refinements. In M. Johnson, editor, Algebraic Methodology and Software Technology, number 1349 in Lecture Notes in Computer Science, pages 276–291. Springer, Berlin, 1997.

    Chapter  Google Scholar 

  17. B. Jacobs. The temporal logic of coalgebras via Galois algebras. Techn. Rep. CSIR9906, Computer Science Institute, University of Nijmegen. To appear in Mathematical Structures in Computer Science, 1999.

    Google Scholar 

  18. B. Jacobs. Object-oriented hybrid systems of coalgebras plus monoid actions. Theoretical Computer Science, 239:41–95, 2000.

    Article  MATH  MathSciNet  Google Scholar 

  19. B. Jacobs, L. Moss, H. Reichel, and J. Rutten, editors. Coalgebraic Methods in Computer Science (CMCS’98), number 11 in Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam, 1998. http://www.elsevier.nl/locate/entcs/volume11.html.

  20. B. Jacobs, L. Moss, H. Reichel, and J. Rutten, editors. Coalgebraic Methods in Computer Science, volume 260(1/2) of Theor. Comp. Sci., 2001. Special issue on CMCS’98.

    Google Scholar 

  21. B. Jacobs and J. Rutten. A tutorial on (co)algebras and (co)induction. EATCS Bulletin, 62:222–259, 1997.

    MATH  Google Scholar 

  22. B. Jacobs and J. Rutten, editors. Coalgebraic Methods in Computer Science (CMCS’99), number 19 in Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam, 1999. http://www.elsevier.nl/locate/entcs/volume19.html.

  23. B. Jacobs, J. van den Berg, M. Huisman, M. van Berkum, U. Hensel, and H. Tews. Reasoning about classes in Java (preliminary report). In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 329–340. ACM Press, 1998.

    Google Scholar 

  24. R. E. Kalman, P. L. Falb, and M. A. Arbib. Topics in Mathematical System Theory. McGraw-Hill Int. Series in Pure & Appl. Math., 1969.

    Google Scholar 

  25. L. Lamport. The temporal logic of actions. ACM Trans. on Progr. Lang. and Systems, 16(3):872–923, 1994.

    Article  Google Scholar 

  26. L. Lamport. Specifying concurrent systems with T LA+. In M. Broy and R. Steinbrüggen, editors, Calculational System Design, number 173 in Series F: Computer and Systems Sciences, pages 183–247. IOS Press, Amsterdam, 1999.

    Google Scholar 

  27. N. Lynch. Simulation techniques for proving properties of real-time systems. In J.W. de Bakker, W. P. de Roever, and G. Rozenberg, editors, A Decade of Concurrency, number 803 in Lecture Notes in Computer Science, pages 375–424. Springer, Berlin, 1994.

    Google Scholar 

  28. N. Lynch. Distributed Algorithms. Morgan Kaufmann, 1996.

    Google Scholar 

  29. Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag, Berlin, 1992.

    Google Scholar 

  30. L. S. Moss. Coalgebraic logic. Annals of Pure & Applied Logic, 96(1–3):277–317, 1999. Erratum in Annals of Pure & Applied Logic, 99(1–3):241–259, 1999.

    Article  MATH  MathSciNet  Google Scholar 

  31. S. Owre, J. M. Rushby, N. Shankar, and F. von Henke. Formal verification for faulttolerant architectures: Prolegomena to the design of PVS. IEEE Transactions on Software Engineering, 21(2):107–125, 1995.

    Article  Google Scholar 

  32. G. L. Peterson. Myths about the mutual exclusion problem. Information Processing Letters, 12(3):115–116, 1981.

    Article  MATH  Google Scholar 

  33. G. Plotkin and M. Abadi. A logic for parametric polymorphism. In M. Bezem and J. F. Groote, editors, Typed Lambda Calculi and Applications, number 664 in Lecture Notes in Computer Science, pages 361–375. Springer, Berlin, 1993.

    Chapter  Google Scholar 

  34. A. Pnueli. The temporal semantics of concurrent programs. Theor. Comp. Sci., 31:45–60, 1981.

    Article  MathSciNet  Google Scholar 

  35. E. Poll and J. Zwanenburg. A logic for abstract data types as existential types. In J.-Y. Girard, editor, Typed Lambda Calculus and Applications, number 1581 in Lecture Notes in Computer Science, pages 310–324. Springer, Berlin, 1999.

    Chapter  Google Scholar 

  36. H. Reichel. An approach to object semantics based on terminal co-algebras. Mathematical Structures in Computer Science, 5:129–152, 1995.

    Article  MATH  MathSciNet  Google Scholar 

  37. H. Reichel, editor. Coalgebraic Methods in Computer Science (CMCS’00), number 33 in Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam, 2000. http://www.elsevier.nl/locate/entcs/volume33.html.

  38. J. Rothe, H. Tews, and B. Jacobs. The coalgebraic class specification language CCSL. Journal of Universal Computer Science, 7(2), 2001.

    Google Scholar 

  39. J. Rutten. Behavioural differential equations: a coinductive calculus of streams, automata, and power series. Technical report, CWI Report SEN-R0023, 2000.

    Google Scholar 

  40. J. Rutten. Universal coalgebra: a theory of systems. Theoretical Computer Science, 249:3–80, 2000.

    Article  MATH  MathSciNet  Google Scholar 

  41. J. J. M. M. Rutten. Automata, power series, and coinduction: Taking input derivatives seriously (extended abstract). In J. Wiedermann, P. van Emde Boas, and M. Nielsen, editors, International Colloquium on Automata, Languages and Programming, number 1644 in Lecture Notes in Computer Science, pages 645–654. Springer, Berlin, 1999.

    Chapter  Google Scholar 

  42. C. Stirling. Modal and temporal logics. In S. Abramsky, Dov M. Gabbai, and T. S. E. Maibaum, editors, Handbook of Logic in Computer Science, volume 2, pages 477–563. Oxford Univ. Press, 1992.

    Google Scholar 

  43. A. S. Tanenbaum and A. S. Woodhull. Operating Systems: Design and Implementation. Prentice Hall, 2nd revised edition, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Jacobs, B. (2002). Exercises in Coalgebraic Specification. In: Backhouse, R., Crole, R., Gibbons, J. (eds) Algebraic and Coalgebraic Methods in the Mathematics of Program Construction. Lecture Notes in Computer Science, vol 2297. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47797-7_7

Download citation

  • DOI: https://doi.org/10.1007/3-540-47797-7_7

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43613-3

  • Online ISBN: 978-3-540-47797-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics