Facilitating the Verification of Diffusing Computations and Their Applications

We study a class of distributed algorithms, generally known by the name of diffusing computations, that play an important role in all kinds distributed and/or database applications to perform tasks like termination detection, leader election, or propagation of information with feedback. We construct a highly parameterized abstract algorithm and shown that many existing algorithms and their applications can be obtained from this abstract algorithm by instantiating the parameters appropriately and/or refining some of its actions. Subsequently, we show that this use of parameterization and re-usability of notation and proof leads to a reduction of the effort and cost of developing and verifying distributed diffusing computations. More specific, we show that proving the correctness of any application now boils down to verifying an application-specific safety property and reusing the termination and safety proofs of the underlying abstract algorithm.

[1]  Adrian Segall,et al.  Distributed network protocols , 1983, IEEE Trans. Inf. Theory.

[2]  Friedemann Mattern,et al.  Distributed Control Algorithms (Selected Topics) , 1993 .

[3]  K. Mani Chandy,et al.  Termination Detection of Diffusing Computations in Communicating Sequential Processes , 1982, TOPL.

[4]  To-Yat Cheung,et al.  Graph Traversal Techniques and the Maximum Flow Problem in Distributed Computation , 1983, IEEE Transactions on Software Engineering.

[5]  S. Finn Resynch Procedures and a Fail-Safe Network Protocol , 1979, IEEE Trans. Commun..

[6]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[7]  Ching-Tsun Chou Using Operational Intuition aboutEvents and Causality in Assertional ProofsChing , 1995 .

[8]  Nissim Francez,et al.  Distributed Termination , 1980, TOPL.

[9]  Ajoy Kumar Datta,et al.  Self-stabilizing PIF algorithm in arbitrary rooted networks , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[10]  I. S. W. B. Prasetya Mechanically supported design of self-stabilizing algorithms , 1995 .

[11]  Anish Arora,et al.  Distributed Reset , 1994, IEEE Trans. Computers.

[12]  S. D. Swierstra,et al.  Proving distributed hylomorphisms , 2001 .

[13]  Laura M. Haas,et al.  Distributed deadlock detection , 1983, TOCS.

[14]  K. Mani Chandy,et al.  Distributed computation on graphs: shortest path algorithms , 1982, CACM.

[15]  Shing-Tsaan Huang,et al.  A distributed deadlock detection algorithm for CSP-like communication , 1990, TOPL.

[16]  Wim H. Hesselink,et al.  A mechanical proof of Segall's PIF algorithm , 1997, Formal Aspects of Computing.

[17]  J. J. Garcia-Luna-Aceves,et al.  Loop-free routing using diffusing computations , 1993, TNET.

[18]  Jan Friso Groote,et al.  A computer checked algebraic verification of a distributed summation algorithm , 2005, Formal Aspects of Computing.

[19]  Ching-Tsun Chou,et al.  Mechanical Verification of Distributed Algorithms in Higher-Order Logic , 1994, Comput. J..

[20]  S. D. Swierstra,et al.  Program refinement in UNITY , 2001 .

[21]  Edsger W. Dijkstra,et al.  Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..

[22]  Mamoun Filali,et al.  Refinement Based Validation of an Algorithm for Detecting Distributed Termination , 2000, IPDPS Workshops.

[23]  Valmir Carneiro Barbosa,et al.  An introduction to distributed algorithms , 1996 .

[24]  Friedemann Mattern,et al.  Algorithms for distributed termination detection , 1987, Distributed Computing.

[25]  Frits Vaandrager Verification of a Distributed Summation Algorithm , 1995, CONCUR.