Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us
Search
Cart
Book cover

IFIP International Conference on Theoretical Computer Science

TCS 2012: Theoretical Computer Science pp 209–224Cite as

  1. Home
  2. Theoretical Computer Science
  3. Conference paper
Formal Verification of Distributed Algorithms

Formal Verification of Distributed Algorithms

From Pseudo Code to Checked Proofs

  • Philipp Küfner18,
  • Uwe Nestmann18 &
  • Christina Rickmann18 
  • Conference paper
  • 1109 Accesses

  • 18 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 7604)

Abstract

We exhibit a methodology to develop mechanically-checkable parameterized proofs of the correctness of fault-tolerant round-based distributed algorithms in an asynchronous message-passing setting. Motivated by a number of case studies, we sketch how to replace often-used informal and incomplete pseudo code by mostly syntax-free formal and complete definitions of a global-state transition system. Special emphasis is put on the required deepening of the level of proof detail to be able to check them within an interactive theorem proving environment.

Download conference paper PDF

References

  1. Ballarin, C.: Locales and Locale Expressions in Isabelle/Isar. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 34–50. Springer, Heidelberg (2004)

    CrossRef  Google Scholar 

  2. Charron-Bost, B., Debrat, H., Merz, S.: Formal Verification of Consensus Algorithms Tolerating Malicious Faults. In: Défago, X., Petit, F., Villain, V. (eds.) SSS 2011. LNCS, vol. 6976, pp. 120–134. Springer, Heidelberg (2011)

    CrossRef  Google Scholar 

  3. Clarke, E.M.: Proving the correctness of coroutines without history variables. In: ACM-SE 16, pp. 160–167. ACM, New York (1978)

    CrossRef  Google Scholar 

  4. Clint, M.: Program proving: Coroutines. Acta Informatica 2, 50–63 (1973)

    CrossRef  Google Scholar 

  5. Clint, M.: On the use of history variables. Acta Informatica 16, 15–30 (1981)

    CrossRef  MATH  Google Scholar 

  6. Chandra, T.D., Toueg, S.: Unreliable failure detectors for reliable distributed systems. Journal of the ACM 43, 225–267 (1996)

    CrossRef  MathSciNet  MATH  Google Scholar 

  7. Francalanza, A., Hennessy, M.: A Fault Tolerance Bisimulation Proof for Consensus (Extended Abstract). In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 395–410. Springer, Heidelberg (2007)

    CrossRef  Google Scholar 

  8. Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)

    CrossRef  MathSciNet  MATH  Google Scholar 

  9. Fuzzati, R., Merro, M., Nestmann, U.: Distributed Consensus, Revisited. Acta Informatica 44(6), 377–425 (2007)

    CrossRef  MathSciNet  MATH  Google Scholar 

  10. Fuzzati, R.: A Formal Approach to Fault Tolerant Distributed Consensus. PhD thesis, EPFL, Lausanne (2008)

    Google Scholar 

  11. Gafni, E., Lamport, L.: Disk Paxos. In: Herlihy, M.P. (ed.) DISC 2000. LNCS, vol. 1914, pp. 330–344. Springer, Heidelberg (2000)

    CrossRef  Google Scholar 

  12. Gurevich, Y.: Evolving algebras: An attempt to discover semantics (1993)

    Google Scholar 

  13. Jaskelioff, M., Merz, S.: Proving the correctness of disk paxos. In: The Archive of Formal Proofs (2005), http://afp.sf.net/entries/DiskPaxos.shtml

  14. Lamport, L.: The implementation of reliable distributed multiprocess systems. Computer Networks 2(2), 95–114 (1976)

    MathSciNet  Google Scholar 

  15. Lamport, L.: The part-time parliament. ACM Transactions on Computer Systems 16, 133–169 (1998)

    CrossRef  Google Scholar 

  16. Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley (2002)

    Google Scholar 

  17. Lamport, L., Shostak, R., Pease, M.: The byzantine generals problem. ACM ToPLaS 4(3), 382–401 (1982)

    CrossRef  MATH  Google Scholar 

  18. Lynch, N.A.: Distributed Algorithms. Morgan Kaufmann Pub. (1996)

    Google Scholar 

  19. Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL - A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)

    CrossRef  MATH  Google Scholar 

  20. Owicki, S.: A consistent and complete deductive system for the verification of parallel programs. In: Proceedings of STOC 1976, pp. 73–86. ACM (1976)

    Google Scholar 

  21. Schneider, F.B.: Implementing fault-tolerant services using the state machine approach: A tutorial. ACM Computing Surveys 22, 299–319 (1990)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

  1. Technische Universität Berlin, Germany

    Philipp Küfner, Uwe Nestmann & Christina Rickmann

Authors
  1. Philipp Küfner
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Uwe Nestmann
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Christina Rickmann
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Editors and Affiliations

  1. Centrum Wiskunde & Informatica (CWI), Science Park 123, 1098 XG, Amsterdam, The Netherlands

    Jos C. M. Baeten & Frank S. de Boer & 

  2. Microsoft Research, One Microsoft Way, 98052, Redmond, WA, USA

    Tom Ball

Rights and permissions

Reprints and Permissions

Copyright information

© 2012 IFIP International Federation for Information Processing

About this paper

Cite this paper

Küfner, P., Nestmann, U., Rickmann, C. (2012). Formal Verification of Distributed Algorithms. In: Baeten, J.C.M., Ball, T., de Boer, F.S. (eds) Theoretical Computer Science. TCS 2012. Lecture Notes in Computer Science, vol 7604. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33475-7_15

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-642-33475-7_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-33474-0

  • Online ISBN: 978-3-642-33475-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Search

Navigation

  • Find a journal
  • Publish with us

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature