## Book contents

- Frontmatter
- Contents
- List of contributors
- Preface
- 1 Origins of bisimulation and coinduction
- 2 An introduction to (co)algebra and (co)induction
- 3 The algorithmics of bisimilarity
- 4 Bisimulation and logic
- 5 Howe's method for higher-order languages
- 6 Enhancements of the bisimulation proof method
- 7 Probabilistic bisimulation
- References

# 2 - An introduction to (co)algebra and (co)induction

Published online by Cambridge University Press:
**
05 November 2011
**

- Frontmatter
- Contents
- List of contributors
- Preface
- 1 Origins of bisimulation and coinduction
- 2 An introduction to (co)algebra and (co)induction
- 3 The algorithmics of bisimilarity
- 4 Bisimulation and logic
- 5 Howe's method for higher-order languages
- 6 Enhancements of the bisimulation proof method
- 7 Probabilistic bisimulation
- References

## Summary

Introduction

Algebra is a well-established part of mathematics, dealing with sets with operations satisfying certain properties, like groups, rings, vector spaces, etc. 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, subalgebra, 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 objects of study are data types in themselves, using notions and techniques which are familiar from algebra.

- Type
- Chapter
- Information
- Advanced Topics in Bisimulation and Coinduction , pp. 38 - 99Publisher: Cambridge University PressPrint publication year: 2011

## References

- 14
- Cited by