Abstract
Distributed Algorithms are hard to prove correct. In settings with process failures, things get worse. Among the proof methods proposed in this context, we focus on process calculi, which offer a tight connection of proof concepts to the actual code representing the algorithm. We use Distributed Consensus as a case study to evaluate recent developments in this field. Along the way, we find that the classical assertional style for proofs on distributed algorithms can be used to structure bisimulation relations. For this, we propose the definition of uniform syntactic descriptions of reachable states, on which state-based assertions can be conveniently formulated. As a result, we get the best of both worlds: on the one hand invariant-style representation of proof knowledge; on the other hand the bisimulation-based formal connection to the code.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Berger, M., Honda, K.: The two-phase commitment protocol in an extended pi-calculus. Electr. Notes Theor. Comput. Sci. 39(1) (2000)
Chandra, T.D., Toueg, S.: Unreliable failure detectors for reliable distributed systems. J. ACM 43(2) (1996)
Fokkink, W., Groote, J.F., Reniers, M.: Process algebra needs proof methodology. EATCS Bulletin 82, 109–125 (2004)
Francalanza, A., Hennessy, M.: A fault tolerance bisimulation proof for consensus. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 395–410. Springer, Heidelberg (2007)
Fournet, C.: The Join-Calculus: A Calculus for Distributed Mobile Programming. Ph.D thesis, École Polytechnique, Paris, France (1998)
Hennessy, M.: A Distributed Pi-Calculus. Cambridge University Press, Cambridge (2007)
Kühnrich, M.: Formal model-driven design of distributed algorithms. In: Annual Doctoral Workshop on Mathematical and Engineering Methods in Computer Science (November 2008)
Lynch, N.: Distributed Algorithms. Kaufmann Publishers, San Francisco (1996)
Milner, R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)
Nestmann, U., Fuzzati, R.: Unreliable failure detectors via operational semantics. In: Saraswat, V.A. (ed.) ASIAN 2003. LNCS, vol. 2896, pp. 54–71. Springer, Heidelberg (2003)
Nestmann, U., Fuzzati, R., Merro, M.: Modeling consensus in a process calculus. In: Amadio, R., Lugiez, D. (eds.) CONCUR 2003. LNCS, vol. 2761, pp. 399–414. Springer, Heidelberg (2003)
Philippou, A., Michael, G.: Verification techniques for distributed algorithms. In: Shvartsman, M.M.A.A. (ed.) OPODIS 2006. LNCS, vol. 4305, pp. 172–186. Springer, Heidelberg (2006)
Sewell, P., Vitek, J.: Secure composition of untrusted code: Wrappers and causality types. In: CSFW, pp. 269–284 (2000)
Tsuchiya, T., Schiper, A.: Using bounded model checking to verify consensus algorithms. LNCS. Springer, Heidelberg (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 IFIP International Federation for Information Processing
About this paper
Cite this paper
Kühnrich, M., Nestmann, U. (2009). On Process-Algebraic Proof Methods for Fault Tolerant Distributed Systems. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds) Formal Techniques for Distributed Systems. FMOODS FORTE 2009 2009. Lecture Notes in Computer Science, vol 5522. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02138-1_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-02138-1_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02137-4
Online ISBN: 978-3-642-02138-1
eBook Packages: Computer ScienceComputer Science (R0)