Introduction to Bisimulation and Coinduction

Induction is a pervasive tool in computer science and mathematics for defining objects and reasoning on them. Coinduction is the dual of induction and as such it brings in quite different tools. Today, it is widely used in computer science, but also in other fields, including artificial intelligence, cognitive science, mathematics, modal logics, philosophy and physics. The best known instance of coinduction is bisimulation, mainly employed to define and prove equalities among potentially infinite objects: processes, streams, nonwellfounded sets, etc.
This book presents bisimulation and coinduction: the fundamental concepts and techniques and the duality with induction. Each chapter contains exercises and selected solutions, enabling students to connect theory with practice. A special emphasis is placed on bisimulation as a behavioural equivalence for processes. Thus the book serves as an introduction to models for expressing processes (such as process calculi) and to the associated techniques of operational and algebraic analysis.
The book is a precursor to the companion book Advanced Topics in Bisimulation and Coinduction on more advanced topics.
'A beautiful textbook on bisimulation and coinduction, some of the most influential and powerful recent concepts in computer science. The volume contains a comprehensive introduction presented in an impressive pedagogical style providing the reader with a pleasantblend of the theory behind the concepts and how to apply them. Furthermore, the book is full of illustrative examples and exercises  a book readily usable for teaching!'
 Mogens Nielsen, Aarhus University
 Matthew Hennessy, Trinity College Dublin
 Jos Baeten, Eindhoven University of Technology
 Benjamin C. Pierce, University of Pennsylvania 