Verification Techniques for Distributed Algorithms

A value-passing, asynchronous process calculus and its associated theory of confluence are considered as a basis for establishing the correctness of distributed algorithms. In particular, we present an asynchronous version of value-passing CCS and we develop its theory of confluence. We show techniques for demonstrating confluence of complex processes in a compositional manner and we study properties of confluent systems that can prove useful for their verification. These results give rise to a methodology for system verification which we illustrate by proving the correctness of two distributed leader-election algorithms.

[1]  Uwe Nestmann,et al.  On determinacy and nondeterminacy in concurrent programming , 1996 .

[2]  Chris M. N. Tofts,et al.  Proof methods and pragmatics for parallel programming , 1990 .

[3]  David Walker,et al.  On Transformations of Concurrent Object Programs , 1996, CONCUR.

[4]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

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

[6]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[7]  Michael Thomas Sanderson,et al.  Proof techniques for CCS , 1983 .

[8]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[9]  Anna Philippou,et al.  On Confluence in the pi-Calculus , 1997, ICALP.

[10]  Davide Sangiorgi,et al.  A Theory of Bisimulation for the pi-Calculus , 1993, CONCUR.

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

[12]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[13]  R. Stockton Gaines,et al.  Decentralized Extrema- Finding in Circular Configurations of Processors , 1980 .

[14]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[15]  Gérard Boudol,et al.  Asynchrony and the Pi-calculus , 1992 .

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

[17]  David Walker,et al.  Confluence of Processes and Systems of Objects , 1995, TAPSOFT.

[18]  Benjamin C. Pierce,et al.  Pict: a programming language based on the Pi-Calculus , 2000, Proof, Language, and Interaction.

[19]  Jan Friso Groote,et al.  Confluence for Process Verification , 1995, CONCUR.