Skip to main content

Using Simulated Execution in Verifying Distributed Algorithms

  • Conference paper
  • First Online:
Verification, Model Checking, and Abstract Interpretation (VMCAI 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2575))

Abstract

This paper presents a methodology for proving properties of distributed systems in which simulated execution assists and enhances formal proofs. It is well known that techniques such as testing can increase confidence in an implementation, but cannot by themselves demonstrate correctness. In addition to detecting simple errors quickly and to providing intuition about behavior, execution-based techniques can also reveal unexpected properties, suggest necessary lemmas, and provide information to structure proofs. This paper also describes the use of these techniques in a machine-checked proof of correctness of the Paxos algorithm for distributed consensus.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Rajeev Alur, Thomas A. Henzinger, F.Y.C. Mang, Shaz Qadeer, SriramK. Rajamani, and Serdar Tasiran. Mocha: Exploiting modularity in model checking. In Proceedings of the Tenth International Conference on Computer-aided Verification, volume 1427 of Lecture Notes in Computer Science 1427, pages 521–525, 1998.

    Google Scholar 

  2. Andrej Bogdanov. Formal verification of simulations between I/O automata. Master’s thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, 2001.

    Google Scholar 

  3. Michael Ernst, Jake Cokrell, William G. Grisworld, and David Notkin. Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering, 27(2):1–25, 2001.

    Article  Google Scholar 

  4. Stephen Garland and John Guttag. A guide to LP, the Larch Prover. Technical report, DEC Systems Research Center, 1991. Updated version avaliable at URL http://nms.lcs.mit.edu/Larch/LP.

  5. John V. Guttag, James J. Horning, S. J. Garland, K. D. Jones, A. Modet, and J. M. Wing. Larch: Languages and Tools for Formal Specification. Texts and Monographs in Computer Science. Springer-Verlag, New York, 1993.

    Google Scholar 

  6. Stephen J. Garland and Nancy A. Lynch. The IOA language and toolset: Support for designing, analyzing, and building distributed systems. Technical Report MIT/LCS/TR-762, Laboratory for Computer Science, Massachusetts Institute of Technology, Cambridge, MA, August 1998. URL http://theory.lcs.mit.edu/tds/papers/Lynch/IOA-TR-762.ps.

    Google Scholar 

  7. Yuri Gurevich, Wolfram Schulte, and Margus Veanes. Toward industrial strength abstract state machines. Technical Report MSR-TR-2001-98, Microsoft Research, 2001. URL for software http://www.research.microsoft.com/foundations/asml/.

  8. Dilsun Kýrlý, Anna Chefter, Laura Dean, Stephen J. Garland, Nancy A. Lynch, Toh Ne Win, and Antonio Ramirez-Robredo. The IOA simulator. Technical Report MIT-LCS-TR-843, MIT Laboratory for Computer Science, July 2002.

    Google Scholar 

  9. Dilsun Kýrlý, Anna Chefter, Laura Dean, Stephen J. Garland, Nancy A. Lynch, Toh Ne Win, and Antonio Ramirez-Robredo. Simulating nondeterministic systems at multiple levels of abstraction. In Proceedings of Tools Day 2002, pages 44–59, Brno, Czech Republic, August 2002. Also available as Masaryk University Technical Report FI MU-RS-2002-05.

    Google Scholar 

  10. Leslie Lamport. The part-time parliament. ACM Transactions on Computer Systems, 16(2):133–169, May 1998.

    Article  Google Scholar 

  11. Nancy A. Lynch and Mark R. Tuttle. An introduction to Input/Output automata. CWI-Quarterly, 2(3):219–246, September 1989.

    MATH  MathSciNet  Google Scholar 

  12. Leslie Lamport and Yuan Yu. TLC-The TLA+ Model Checker. Compaq Systems Research Center, Palo Alto, California, 2001. URL http://research.microsoft.com/users/lamport/tla/tlc.html.

    Google Scholar 

  13. Nancy Lynch. Distributed Algorithms. Morgan Kaufmann Publishers, Inc., San Mateo, CA, March 1996.

    MATH  Google Scholar 

  14. Kenneth L. McMillan. The SMV Language. Cadence Berkeley Labs, 2001 Addison Street, Berkeley, CA 94 704, USA. URL http://www.cis.ksu.edu/santos/smv-doc/.

  15. Jeremy W. Nimmer and Michael D. Ernst. Automatic generation of program specifications. In Proceedings of the 2002 International Symposium on Software Testing and Analysis (ISSTA), pages 232–242, Rome, Italy, July 22-24, 2002.

    Google Scholar 

  16. Roberto De Prisco, Butler Lampson, and Nancy Lynch. Fundamental study: Revisiting the Paxos algorithm. Theoretical Computer Science, 243:35–91, 2000.

    Article  MATH  MathSciNet  Google Scholar 

  17. Amir Pnueli, Sitvanit Ruah, and Lenore Zuck. Automatic deductive verification with invisible invariants. In Tools and Algorithms for the Analysis and Construction of Systems (TACAS), volume 2031 of LNCS, pages 82–97, Genova, Italy, April 2-6, 2001.

    Chapter  Google Scholar 

  18. Jussi Rintanen. An iterative algorithm for synthesizing invariants. In Proceedings of the Seventeenth National Conference on Artificial Intelligence and Twelfth Conference on Innovative Applications of Artificial Intelligence, pages 806–811, Austin, TX, July 30-August 3, 2000.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Win, T.N., Ernst, M.D., Garland, S.J., Kýrlý, D., Lynch, N.A. (2003). Using Simulated Execution in Verifying Distributed Algorithms. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2003. Lecture Notes in Computer Science, vol 2575. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36384-X_23

Download citation

  • DOI: https://doi.org/10.1007/3-540-36384-X_23

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-00348-9

  • Online ISBN: 978-3-540-36384-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics