I am delighted to announce that a new textbook is ready to preorder: Modelling Distributed Systems by Wan Fokkink Springer-Verlag, November 2007 ISBN 978-3-540-73937-1 For more information... www.springer.com/west/home?SGWID=4-102-22-173751350-0&changeHeader=true&SHORTCUT=www.springer.com/978-3-540-73937-1 For extra material (slides, labs)... http://www.cs.vu.nl/~wanf/books.html COVER BLURB: A distributed system is driven by separate components that are executed in parallel, and protocols for such systems form a major aspect of system design in today's world of wireless and mobile networking. Process algebras are languages for the description of elementary parallel systems and are used to study the behavioural properties of distributed systems, but they often lack the ability to handle data. This textbook guides students through algebraic specification and verification of distributed systems, and some of the most prominent formal verification techniques. The author employs µCRL as the vehicle, a language developed to combine process algebra and abstract data types. Chapters 2 and 3 explain the basics of abstract data types and process algebra, and guide the reader through the syntax and semantics of µCRL; Chap. 4 examines abstraction from internal behaviour; Chap. 5 covers specifications of standard protocols; Chap. 6 shows how to transform protocol specifications into labelled transition systems; Chap. 7 explains algorithms on labelled transition systems; and Chap. 8 presents symbolic verification techniques; finally, the Appendix gives a brief overview of the µCRL toolset. The book evolved from introductory courses on protocol verification taught to undergraduate and graduate students of computer science, and the text is supported throughout with examples and exercises; full solutions are provided in an appendix, while exercise sheets, lab exercises, example specifications and lecturer slides will be available on the author's website. Researchers in the field can use the book as a broad overview of the state of the art in algebraic specification and verification of distributed systems on the basis of a modern verification tool. TABLE OF CONTENTS Introduction Abstract Data Types - Algebraic Specification - Term Rewriting - Equality Functions - Induction Process Algebra - Actions - Alternative and Sequential Composition - Parallel Processes - Deadlock and Encapsulation - Process Declarations - Conditionals - Summation over a Data Type - An Example: The Bag - Renaming - Bisimilarity Hiding Internal Transitions - Hiding of Actions - Summary - An Example: Two One-Bit Buffers in Sequence - Branching Bisimilarity Protocol Specifications - Alternating Bit Protocol - Bounded Retransmission Protocol - Sliding Window Protocol - Tree Identify Protocol - Movable Patient Support for an MRI Scanner Linear Process Equations - Linearisation - State Space Generation and Storage - CL-RSP - Invariants Verification Algorithms on State Spaces - Minimisation Modulo Branching Bisimulation - Confluence - Model Checking - Abstraction Symbolic Methods - Cones and Foci - Verification of the Tree Identify Protocol - Partial Order Reduction - Elimination of Parameters and Sum Variables - Symbolic Model Checking The µCRL Toolset in a Nutshell