Automated verification of Szymanski's algorithm

  • E. Pascal GribomontEmail author
  • Guy Zenner
Regular Sessions Case Studies and Experience
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1384)


The algorithm for mutual exclusion proposed by B. Szymanski is an interesting challenge for verification methods and tools. Several full proofs have been described in the literature, but they seem to require lengthy interactive sessions with powerful theorem provers. As far as this algorithm makes use of only the most elementary facts of arithmetics, we conjectured that a simple, non-interactive proof should exist; this paper gives such a proof, describes its development and how an elementary tool has been used to complete the verification.


Model Check Critical Section Mutual Exclusion Additional Hypothesis Formal Verification 
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.


  1. 1.
    K.R. Apt and D.C. Kozen, Limits for Automatic Program Verification, Inform. Process. Letters 22 (1986) 307–309.MathSciNetCrossRefGoogle Scholar
  2. 2.
    S. Bensalem, Y. Lakhnech and H. Saidi, Powerful techniques for the automatic generation, Lect. Notes in Comput. Sci. (1996) 323–335.Google Scholar
  3. 3.
    N. Bjorner, A. Browne and Z. Manna, Automatic Generation of Invariants and Intermediate Assertions, Lect. Notes in Comput. Sci. 976 (1995) 589–623.MathSciNetGoogle Scholar
  4. 4.
    J.R. Burch et al., Symbolic Model Checking: 1020 States and Beyond, Proc. 5th. Symp. on Logic in Computer Science (1990) 428–439.Google Scholar
  5. 5.
    E. Clarke, Program invariants as fixed points, Proc. 18th IEEE Symp. on Foundations of Comput. Sci. (1977) 18–29.Google Scholar
  6. 6.
    E. Clarke, E. Emerson and A. Sistla, Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications, ACM Trans. Programming Languages Syst. 8 (1986) 244–263.zbMATHCrossRefGoogle Scholar
  7. 7.
    K.M. Chandy and J. Misra, Parallel Program Design: A Foundation (Addison-Wesley, Reading, MA, 1988).zbMATHGoogle Scholar
  8. 8.
    P. Cousot and N. Halbwachs, Automatic Discovery of Linear Restraints Among Variables of a Program, Proc. 5th ACM Symp. on Principles of Programming Languages (1978) 84–96.Google Scholar
  9. 9.
    D.M. Goldschlag, Mechanically Verifying Concurrent programs with the Boyer-Moore prover, IEEE Trans. on Software Engineering 16 (1990) 1005–1023.CrossRefGoogle Scholar
  10. 10.
    S. Graf and H. Saidi, Verifying invariants using theorem proving, Lect. Notes in Comput. Sci. 1102 (1996) 196–207.Google Scholar
  11. 11.
    E.P. Gribomont, Concurrency without toil: a systematic method for parallel program design, Sci. Comput. Programming 21 (1993) 1–56.zbMATHMathSciNetCrossRefGoogle Scholar
  12. 12.
    E.P. Gribomont and D. Rossetto, CAVEAT: technique and tool for Computer Aided VErification And Transformation, Lect. Notes in Comput. Sci. 939 (1995) 70–83.Google Scholar
  13. 13.
    E.P. Gribomont, Preprocessing for invariant validation, Lect. Notes in Comput. Sci. 1101 (1996) 256–270.MathSciNetGoogle Scholar
  14. 14.
    G. Holtzmann, An improved protocol reachability analysis technique, Software, Practice, and Experience, 18 (1988) (137–161)Google Scholar
  15. 15.
    C.N. Ip and D.L. Dill, Verifying Systems with Replicated Components in Murϕ, Lect. Notes in Comput. Sci. 1102 (1996) 147–158.Google Scholar
  16. 16.
    B. Jonsson and L. Kempe, Verifying safety properties of a class of infinite-state distributed algorithms, Lect. Notes in Comput. Sci. 939 (1995) 42–53.Google Scholar
  17. 17.
    R.P. Kurshan and L. Lamport, Verification of a Multiplier: 64 Bits and Beyond, Lect. Notes in Comput. Sci. 697 (1993) 166–179.Google Scholar
  18. 18.
    D. Kapur and M. Subramanian, Mechanically Verifying a Family of Multiplier Circuits, Lect. Notes in Comput. Sci. 1102 (1996) 135–146.Google Scholar
  19. 19.
    L. Lamport, An Assertional Correctness Proof of a Distributed Algorithm, Sci. Comput. Programming 2 (1983) 175–206.MathSciNetCrossRefGoogle Scholar
  20. 20.
    K. Larsen, B. Steffen and C. Weise, Fisher's protocol revisited: a simple proof using modal constraints, Proc. 4th DIMACS Workshop on Verification and Control of Hybrid Systems. New Brunswick, New Jersey, 22–24 October, 1995.Google Scholar
  21. 21.
    W. McCune, OTTER 3.0 Reference manual and guide, Argonne National Laboratory, 1994.Google Scholar
  22. 22.
    Z. Manna et al., STeP: the Stanford Temporal Prover (Draft), Report No. STAN-CS-TR-94-1518, Stanford University, June 1994.Google Scholar
  23. 23.
    M. Nagayama and C. Talcott, An NQTHM Mechanization of Szymanski's algorithm, Report No. STAN-CS-91-1370, Stanford University, June 1991.Google Scholar
  24. 24.
    D.M. Russinoff, A Verification System for Concurrent Programs Based on the Boyer-Moore Prover, Formal Aspects of Computing 4 (1992) 597–611.zbMATHCrossRefGoogle Scholar
  25. 25.
    K. McMillan, Symbolic Model Checking, Kluwer Academic Publishers, 1993.Google Scholar
  26. 26.
    A. Parashkevov and J. Yantchev, Space Efficient Reachability Analysis Through Use of Pseudo-root States, Lect. Notes in Comput. Sci. 1217 (1997) 50–64.CrossRefGoogle Scholar
  27. 27.
    D.M. Russinoff, A Mechanically Verified Incremental Garbage Collector, Formal Aspects of Computing 6 (1994) 359–390.zbMATHCrossRefGoogle Scholar
  28. 28.
    B. Szymanski, A simple solution to Lamport's concurrent programming problem with linear wait, Proc. 1988 Int. Conf. on Supercomputing Systems (1988) 621–626.Google Scholar
  29. 29.
    P. Wolper and D. Leroy, Reliable Hashing without Collision Detection, Lect. Notes in Comput. Sci. 697 (1993)Google Scholar
  30. 30.
    P. Wolper and V. Lovinfosse, Verifying Properties of large Sets of Processes with Network Invariants, Lect. Notes in Comput. Sci. 407 (1990) 68–80.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  1. 1.University of LiègeBelgium

Personalised recommendations