Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Introduction to Bisimulation and CoinductionNovember 2011
Publisher:
  • Cambridge University Press
  • 40 W. 20 St. New York, NY
  • United States
ISBN:978-1-107-00363-7
Published:28 November 2011
Pages:
260
Skip Bibliometrics Section
Reflects downloads up to 06 Oct 2024Bibliometrics
Skip Abstract Section
Abstract

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, non-well-founded 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.

Cited By

  1. ACM
    Bañados Schwerter F, Clark A, Jafery K and Garcia R (2021). Abstracting gradual typing moving forward: precise and space-efficient, Proceedings of the ACM on Programming Languages, 5:POPL, (1-28), Online publication date: 4-Jan-2021.
  2. ACM
    Kasampalis T, Park D, Lin Z, Adve V and Roşu G Language-parametric compiler validation with application to LLVM Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, (1004-1019)
  3. Bottoni P and Labella A (2021). Transactions and contracts based on reaction systems, Theoretical Computer Science, 881:C, (25-61), Online publication date: 15-Aug-2021.
  4. ACM
    Kahani N, Bagherzadeh M and Cordy J Synthesis of state machine models Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, (274-284)
  5. ACM
    Attiya H and Rajsbaum S (2020). Indistinguishability, Communications of the ACM, 63:5, (90-99), Online publication date: 20-Apr-2020.
  6. ACM
    Dasgupta S, Dinesh S, Venkatesh D, Adve V and Fletcher C Scalable validation of binary lifters Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, (655-671)
  7. ACM
    Simpson A and Voorneveld N (2019). Behavioural Equivalence via Modalities for Algebraic Effects, ACM Transactions on Programming Languages and Systems, 42:1, (1-45), Online publication date: 10-Jan-2020.
  8. Jiang Y, Liu S and Ehrhard T (2019). A fully abstract semantics for value-passing CCS for trees, Frontiers of Computer Science: Selected Publications from Chinese Universities, 13:4, (828-849), Online publication date: 1-Aug-2019.
  9. ACM
    Baldan P, König B, Mika-Michalski C and Padoan T (2019). Fixpoint games on continuous lattices, Proceedings of the ACM on Programming Languages, 3:POPL, (1-29), Online publication date: 2-Jan-2019.
  10. Cenciarelli P, Gorla D and Salvo I (2019). Depletable channels, Acta Informatica, 56:5, (405-431), Online publication date: 1-Jul-2019.
  11. Balabonski T, Delga A, Rieg L, Tixeuil S and Urbain X (2019). Synchronous Gathering without Multiplicity Detection, Theory of Computing Systems, 63:2, (200-218), Online publication date: 1-Feb-2019.
  12. ACM
    Patrignani M, Ahmed A and Clarke D (2019). Formal Approaches to Secure Compilation, ACM Computing Surveys, 51:6, (1-36), Online publication date: 30-Nov-2019.
  13. ACM
    Sangiorgi D and Vignudelli V (2019). Environmental Bisimulations for Probabilistic Higher-order Languages, ACM Transactions on Programming Languages and Systems, 41:4, (1-64), Online publication date: 31-Dec-2020.
  14. Lucanu D, Rusu V and Arusoaie A (2017). A generic framework for symbolic execution, Journal of Symbolic Computation, 80:P1, (125-163), Online publication date: 1-May-2017.
  15. ACM
    Ge R and Garcia R (2017). Refining semantics for multi-stage programming, ACM SIGPLAN Notices, 52:12, (2-14), Online publication date: 1-Dec-2017.
  16. ACM
    Ge R and Garcia R Refining semantics for multi-stage programming Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, (2-14)
  17. Aman B and Ciobanu G (2017). Verification of critical systems described in real-time TiMo, International Journal on Software Tools for Technology Transfer (STTT), 19:4, (395-408), Online publication date: 1-Aug-2017.
  18. ACM
    Thiemann P and Vasconcelos V (2016). Context-free session types, ACM SIGPLAN Notices, 51:9, (462-475), Online publication date: 5-Dec-2016.
  19. ACM
    Thiemann P and Vasconcelos V Context-free session types Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, (462-475)
  20. Hillery B, Mercer E, Rungta N and Person S Exact Heap Summaries for Symbolic Execution Proceedings of the 17th International Conference on Verification, Model Checking, and Abstract Interpretation - Volume 9583, (206-225)
  21. Bartoletti M, Cimoli T and Zunino R Compliance in Behavioural Contracts Essays Dedicated to Pierpaolo Degano on Programming Languages with Applications to Biology and Security - Volume 9465, (103-121)
  22. Pan H, Li Y and Cao Y (2015). Lattice-valued simulations for quantitative transition systems, International Journal of Approximate Reasoning, 56:PA, (28-42), Online publication date: 1-Jan-2015.
  23. ACM
    Cranen S, Gazda M, Wesselink W and Willemse T (2015). Abstraction in Fixpoint Logic, ACM Transactions on Computational Logic, 16:4, (1-39), Online publication date: 19-Nov-2015.
  24. ACM
    Bonchi F and Pous D (2015). Hacking nondeterminism with induction and coinduction, Communications of the ACM, 58:2, (87-95), Online publication date: 28-Jan-2015.
  25. Xing C (2014). Adding coinduction into discrete mathematics, Journal of Computing Sciences in Colleges, 29:5, (84-90), Online publication date: 1-May-2014.
  26. ACM
    Cheney J, Lindley S, Radanne G and Wadler P Effective quotation Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation, (15-26)
  27. Thielscher M Simulation of Action Theories and an Application to General Game-Playing Robots Essays Dedicated to Gerhard Brewka on the Occasion of His 60th Birthday on Advances in Knowledge Representation, Logic Programming, and Abstract Argumentation - Volume 9060, (33-46)
  28. ACM
    Dam M, Guanciale R, Khakpour N, Nemati H and Schwarz O Formal verification of information flow security for a simple arm-based separation kernel Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security, (223-234)
  29. ACM
    Bonchi F and Pous D (2013). Checking NFA equivalence with bisimulations up to congruence, ACM SIGPLAN Notices, 48:1, (457-468), Online publication date: 23-Jan-2013.
  30. ACM
    Hur C, Neis G, Dreyer D and Vafeiadis V (2013). The power of parameterization in coinductive proof, ACM SIGPLAN Notices, 48:1, (193-206), Online publication date: 23-Jan-2013.
  31. ACM
    Bonchi F and Pous D Checking NFA equivalence with bisimulations up to congruence Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (457-468)
  32. ACM
    Hur C, Neis G, Dreyer D and Vafeiadis V The power of parameterization in coinductive proof Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (193-206)
  33. Ji R, Hähnle R and Bubel R Program Transformation Based on Symbolic Execution and Deduction Proceedings of the 11th International Conference on Software Engineering and Formal Methods - Volume 8137, (289-304)
  34. Aceto L, Cassar I, Francalanza A and Ingólfsdóttir A Comparing Controlled System Synthesis and Suppression Enforcement Runtime Verification, (148-164)
Contributors
  • University of Bologna

Index Terms

  1. Introduction to Bisimulation and Coinduction

      Reviews

      Simon John Thompson

      Induction and recursion lie at the heart of computer science: grammars are defined inductively, as are proofs in logic, typing in type systems, and functions and procedures in programming languages. Every computer science graduate should be familiar with these and other examples, and be able to reason inductively and make recursive definitions without a second thought. It can be harder to work with other objects: what is the right way to characterize the behavior of a potentially infinite stream of data, or an interactive process that can evolve indefinitely__?__ The answer is to use coinduction to define and reason about them. In particular, bisimulation is used to characterize equality between infinite objects of this sort. While these notions are well known to researchers in process calculi and domain theory, they are less familiar to computer scientists in general. Sangiorgi's book looks set to change that, with an introduction to the subject that is lucid, comprehensive, and approachable. Abstract concepts are illustrated with a variety of well-chosen examples, including the lambda calculus and data types (such as infinite lists), as well as a set of process calculi, which are used throughout the book. A general introduction promises to "liberate us from the constraints of stratification" and sets the work in the context of 20th century mathematics as governed by Russell's discovery and repair of paradoxes in foundational theories through stratification: larger objects have to be built up from smaller constituents. Coinduction offers a way out of this, by making it as equally possible to reason well about "non well-founded" infinite structures, such as a nonterminating process, as about the more traditional structures that produce finite outputs from finite inputs in a finite amount of time. Chapter 1 establishes the definition of bisimulation as the coarsest relation between processes that distinguishes only those with observably different behavior, and shows clearly that this is of a different flavor from traditionally defined equalities based on the structure (or syntax) of objects. Rather, bisimulation is based on more "semantic" considerations. For the general reader, the heart of the book is chapter 2, where Sangiorgi presents a set of examples of induction and coinduction, including terminating and nonterminating behavior in the lambda calculus, finite lists and infinite streams, and finite and infinite process traces. Building on these, he presents the many-faceted duality between induction and coinduction, and in particular their characterizations as least and greatest fixed points in models of various kinds. Moreover, he shows how typical reasoning principles-induction over structure, coinduction by unwinding-are themselves dual. It is a bravura exposition, both compelling and convincing, and should be on the reading list of anyone aiming to master the foundations of theoretical computer science. The remaining chapters consolidate the message of chapter 2, concentrating more on bisimulation than on the wider topic of coinduction, but nevertheless these chapters offer a wealth of valuable graduate-level material in process algebra and theory in general. The text contains numerous examples, and exercises are scattered throughout the book. Many have worked solutions in the appendix, supporting self-study. Inevitably, there are topics that are not covered, and some papers, such as Andy Gordon's seminal 1994 dissertation on functional programming and input/output, are missing from the bibliography; however, Sangiorgi and Rutten have edited a companion volume on advanced topics in bisimulation and coinduction, which gives a broader context to the introduction under review here. In conclusion, this is an outstanding introduction to an important topic, and I hope and expect that in years to come it will become a standard text for advanced students and researchers in theoretical computer science, programming languages, concurrency, logic, and beyond. Online Computing Reviews Service

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      Recommendations