Description
Book SynopsisCoinduction is a method for specifying and reasoning about infinite data types and automata with infinite behaviour. In recent years, it has come to play an ever more important role in the theory of computing. It is studied in many disciplines, including process theory and concurrency, modal logic and automata theory. Typically, coinductive proofs demonstrate the equivalence of two objects by constructing a suitable bisimulation relation between them. This collection of surveys is aimed at both researchers and Master's students in computer science and mathematics and deals with various aspects of bisimulation and coinduction, with an emphasis on process theory. Seven chapters cover the following topics: history, algebra and coalgebra, algorithmics, logic, higher-order languages, enhancements of the bisimulation proof method, and probabilities. Exercises are also included to help the reader master new material.
Table of ContentsPreface; List of contributors; 1. Origins of bisimulation and coinduction Davide Sangiorgi; 2. An introduction to (co)algebra and (co)induction Bart Jacobs and Jan Rutten; 3. The algorithmics of bisimilarity Luca Aceto, Anna Ingolfsdottir and Jiří Srba; 4. Bisimulation and logic Colin Stirling; 5. Howe's method for higher-order languages Andrew Pitts; 6. Enhancements of the bisimulation proof method Damien Pous and Davide Sangiorgi; 7. Probabilistic bisimulation Prakash Panangaden.