Modelling Distributed Systems

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. 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 are available on the author's website.

[1]  Alex Sellink,et al.  Example Verifications Using Alphabet Axioms , 1998, Formal Aspects of Computing.

[2]  Scott A. Smolka,et al.  CCS expressions, finite state processes, and three problems of equivalence , 1983, PODC '83.

[3]  Rob J. van Glabbeek,et al.  Branching time and abstraction in bisimulation semantics , 1996, JACM.

[4]  Jan Friso Groote,et al.  Equational Binary Decision Diagrams , 2000, LPAR.

[5]  Ieee Standards Board IEEE Standard for a High Performance Serial Bus-Amendment 1 , 2000 .

[6]  Stephan Merz,et al.  Model Checking , 2000 .

[7]  J. F. Groote,et al.  A Correctness Proof of the Bakery Protocol in CRL , 1994 .

[8]  Gregor von Bochmann Logical verification and implementation of protocols , 1975 .

[9]  Robert S. Boyer,et al.  A computational logic handbook , 1979, Perspectives in computing.

[10]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic , 2008, 25 Years of Model Checking.

[11]  Jan Springintveld,et al.  A Computer-Checked Verification of Milner's Scheduler , 1993, TACS.

[12]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[13]  Jan Friso Groote,et al.  A Correctness Proof of a One-Bit Sliding Window Protocol in µCRL , 1993, Comput. J..

[14]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[15]  Thomas Arts,et al.  Correct performance of transaction capabilities , 2001, Proceedings Second International Conference on Application of Concurrency to System Design.

[16]  Hans-Dieter Ehrich,et al.  Specification of abstract data types , 1996 .

[17]  J. F. Groote,et al.  State space reduction using partial τ-confluence , 2000 .

[18]  Marc Bezem,et al.  Two Finite Specifications of a Queue , 1997, Theor. Comput. Sci..

[19]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[20]  Jan Friso Groote,et al.  Invariants in Process Algebra with Data , 1993, CONCUR.

[21]  Vinton G. Cerf,et al.  A protocol for packet network intercommunication , 1974, CCRV.

[22]  Jan Friso Groote,et al.  Confluence for Process Verification , 1995, Theor. Comput. Sci..

[23]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[24]  Yaroslav S. Usenko State space generation for the HAVi leader election protocol , 2002, Sci. Comput. Program..

[25]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[26]  Jan Friso Groote,et al.  A Bounded Retransmission Protocol for Large Data Packets , 1993, AMAST.

[27]  Jan Friso Groote,et al.  Focus points and convergent process operators: a proof strategy for protocol verification , 2001, J. Log. Algebraic Methods Program..

[28]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[29]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[30]  Twan Basten,et al.  Branching Bisimilarity is an Equivalence Indeed! , 1996, Inf. Process. Lett..

[31]  Academisch Proefschrift,et al.  Process Algebra and Structured Operational Semantics , 1991 .

[32]  Frits W. Vaandrager,et al.  Proof-Checking a Data Link Protocol , 1994, TYPES.

[33]  Parosh Aziz Abdulla,et al.  Symbolic Verification of Lossy Channel Systems: Application to the Bounded Retransmission Protocol , 1999, TACAS.

[34]  S. C.C. Blom Partial $\tau$-confluence for efficient state space generation , 2001 .

[35]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[36]  Judi Romijn A Timed Verification of the IEEE 1394 Leader Election Protocol , 2001, Formal Methods Syst. Des..

[37]  Jan Friso Groote,et al.  Proof Theory for µCRL: A Language for Processes with Data , 1993, Semantics of Specification Languages.

[38]  Jaco van de Pol,et al.  State Space Reduction by Proving Confluence , 2002, CAV.

[39]  Mihaela Sighireanu,et al.  Verification of the Link layer protocol of the IEEE-1394 serial bus (FireWire): an experiment with E-LOTOS , 1998, International Journal on Software Tools for Technology Transfer.

[40]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[41]  Lawrence C. Paulson,et al.  Isabelle: The Next Seven Hundred Theorem Provers , 1988, CADE.

[42]  Dexter Kozen,et al.  Results on the Propositional µ-Calculus , 1982, ICALP.

[43]  Louis de Forcrand,et al.  Higher Arithmetic , 1898, Nature.

[44]  Jan Friso Groote,et al.  µCRL: A Toolset for Analysing Algebraic Specifications , 2001, CAV.

[45]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[46]  Julian Rathke,et al.  Unique fixpoint induction for message-passing process calculi , 2001, Sci. Comput. Program..

[47]  Paul Klint,et al.  Efficient annotated terms , 2000, Softw. Pract. Exp..

[48]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[49]  Theo C. Ruys,et al.  The Bounded Retransmission Protocol Must Be on Time! , 1997, TACAS.

[50]  Chin-Laung Lei,et al.  Efficient Model Checking in Fragments of the Propositional Mu-Calculus (Extended Abstract) , 1986, LICS.

[51]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[52]  Amir Pnueli,et al.  Checking that finite state concurrent programs satisfy their linear specification , 1985, POPL.

[53]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[54]  Jos C. M. Baeten,et al.  Process Algebra , 2007, Handbook of Dynamic System Modeling.

[55]  Jan Friso Groote,et al.  An Efficient Algorithm for Branching Bisimulation and Stuttering Equivalence , 1990, ICALP.

[56]  Jan Friso Groote,et al.  Checking Verifications of Protocols and Distributed Systems by Computer , 1998, CONCUR.

[57]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[58]  Jan Friso Groote,et al.  The Syntax and Semantics of μCRL , 1995 .

[59]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[60]  Yaroslav Usenko Linearization of ?CRL specifications , 2002 .

[61]  Julian Rathke Unique fixpoint induction for value-passing processes , 1997, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[62]  Izak A. Langevelde,et al.  A compact file format for labeled transition systems , 2001 .

[63]  Hubert Garavel,et al.  OPEN/CÆSAR: An OPen Software Architecture for Verification, Simulation, and Testing , 1998, TACAS.

[64]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[65]  David E. Carlson,et al.  Bit-Oriented Data Link Control , 1982 .

[66]  Anneke A. Schoone Protocols by Invariants , 1996 .

[67]  Rocco De Nicola,et al.  Action versus State based Logics for Transition Systems , 1990, Semantics of Systems of Concurrent Processes.

[68]  Robin Milner,et al.  Calculi for Synchrony and Asynchrony , 1983, Theor. Comput. Sci..

[69]  Jan Friso Groote,et al.  Linearization in parallel pCRL , 2000, J. Log. Algebraic Methods Program..

[70]  Keith A. Bartlett,et al.  A note on reliable full-duplex transmission over half-duplex links , 1969, Commun. ACM.

[71]  Izak van Langevelde,et al.  On the Verification of Coordination , 2000, COORDINATION.

[72]  S. P. Luttik Description and formal specification of the Link Layer of P1394 , 1997, FME 1997.

[73]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[74]  J. F. Groote,et al.  A balancing act : analyzing a distributed lift system , 2001 .

[75]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[76]  Jan A. Bergstra,et al.  The Algebra of Recursively Defined Processes and the Algebra of Regular Processes , 1984, ICALP.

[77]  J. J. van Wamel,et al.  Verification Techniques for Elementary Data Types and Retransmission Protocols , 1995 .

[78]  Frits W. Vaandrager,et al.  Verification of a Leader Election Protocol: Formal Methods Applied to IEEE 1394 , 2000, Formal Methods Syst. Des..

[79]  Carron Shankland,et al.  The Tree Identify Protocol of IEEE 1394 in μCRL , 1998, Formal Aspects of Computing.

[80]  Glenn Bruns,et al.  Distributed systems analysis with CCS , 1997 .

[81]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[82]  Jan Friso Groote,et al.  The parallel composition of uniform processes with data , 2001, Theor. Comput. Sci..

[83]  Ranko S. Lazic,et al.  A semantic study of data independence with applications to model checking , 1999 .

[84]  Jan Friso Groote,et al.  Formal Verification of a Leader Election Protocol in Process Algebra , 1997, Theor. Comput. Sci..

[85]  Alain Kerbrat,et al.  CADP - A Protocol Validation and Verification Toolbox , 1996, CAV.

[86]  Gerard J. Holzmann,et al.  An Analysis of Bitstate Hashing , 1995, Formal Methods Syst. Des..

[87]  Chin-Laung Lei,et al.  Modalities for Model Checking: Branching Time Logic Strikes Back , 1987, Sci. Comput. Program..

[88]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[89]  Frits W. Vaandrager,et al.  Root Contention in IEEE 1394 , 1999, ARTS.

[90]  Robert E. Tarjan,et al.  Three Partition Refinement Algorithms , 1987, SIAM J. Comput..

[91]  Jan Friso Groote,et al.  Formalizing process algebraic verifications in the calculus of constructions , 2005, Formal Aspects of Computing.

[92]  J. W. de Bakker,et al.  Processes and the Denotational Semantics of Concurrency , 1982, Inf. Control..

[93]  Wan Fokkink,et al.  Introduction to Process Algebra , 1999, Texts in Theoretical Computer Science. An EATCS Series.

[94]  Orna Grumberg,et al.  Abstract interpretation of reactive systems , 1997, TOPL.

[95]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[96]  Jan Friso Groote,et al.  Computer assisted manipulation of algebraic process specifications , 2002, SIGP.