Abstract
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.
Chapter PDF
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
K.R. Apt and D.C. Kozen, Limits for Automatic Program Verification, Inform. Process. Letters 22 (1986) 307–309.
S. Bensalem, Y. Lakhnech and H. Saidi, Powerful techniques for the automatic generation, Lect. Notes in Comput. Sci. (1996) 323–335.
N. Bjorner, A. Browne and Z. Manna, Automatic Generation of Invariants and Intermediate Assertions, Lect. Notes in Comput. Sci. 976 (1995) 589–623.
J.R. Burch et al., Symbolic Model Checking: 1020 States and Beyond, Proc. 5th. Symp. on Logic in Computer Science (1990) 428–439.
E. Clarke, Program invariants as fixed points, Proc. 18th IEEE Symp. on Foundations of Comput. Sci. (1977) 18–29.
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.
K.M. Chandy and J. Misra, Parallel Program Design: A Foundation (Addison-Wesley, Reading, MA, 1988).
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.
D.M. Goldschlag, Mechanically Verifying Concurrent programs with the Boyer-Moore prover, IEEE Trans. on Software Engineering 16 (1990) 1005–1023.
S. Graf and H. Saidi, Verifying invariants using theorem proving, Lect. Notes in Comput. Sci. 1102 (1996) 196–207.
E.P. Gribomont, Concurrency without toil: a systematic method for parallel program design, Sci. Comput. Programming 21 (1993) 1–56.
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.
E.P. Gribomont, Preprocessing for invariant validation, Lect. Notes in Comput. Sci. 1101 (1996) 256–270.
G. Holtzmann, An improved protocol reachability analysis technique, Software, Practice, and Experience, 18 (1988) (137–161)
C.N. Ip and D.L. Dill, Verifying Systems with Replicated Components in Murϕ, Lect. Notes in Comput. Sci. 1102 (1996) 147–158.
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.
R.P. Kurshan and L. Lamport, Verification of a Multiplier: 64 Bits and Beyond, Lect. Notes in Comput. Sci. 697 (1993) 166–179.
D. Kapur and M. Subramanian, Mechanically Verifying a Family of Multiplier Circuits, Lect. Notes in Comput. Sci. 1102 (1996) 135–146.
L. Lamport, An Assertional Correctness Proof of a Distributed Algorithm, Sci. Comput. Programming 2 (1983) 175–206.
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.
W. McCune, OTTER 3.0 Reference manual and guide, Argonne National Laboratory, 1994.
Z. Manna et al., STeP: the Stanford Temporal Prover (Draft), Report No. STAN-CS-TR-94-1518, Stanford University, June 1994.
M. Nagayama and C. Talcott, An NQTHM Mechanization of Szymanski's algorithm, Report No. STAN-CS-91-1370, Stanford University, June 1991.
D.M. Russinoff, A Verification System for Concurrent Programs Based on the Boyer-Moore Prover, Formal Aspects of Computing 4 (1992) 597–611.
K. McMillan, Symbolic Model Checking, Kluwer Academic Publishers, 1993.
A. Parashkevov and J. Yantchev, Space Efficient Reachability Analysis Through Use of Pseudo-root States, Lect. Notes in Comput. Sci. 1217 (1997) 50–64.
D.M. Russinoff, A Mechanically Verified Incremental Garbage Collector, Formal Aspects of Computing 6 (1994) 359–390.
B. Szymanski, A simple solution to Lamport's concurrent programming problem with linear wait, Proc. 1988 Int. Conf. on Supercomputing Systems (1988) 621–626.
P. Wolper and D. Leroy, Reliable Hashing without Collision Detection, Lect. Notes in Comput. Sci. 697 (1993)
P. Wolper and V. Lovinfosse, Verifying Properties of large Sets of Processes with Network Invariants, Lect. Notes in Comput. Sci. 407 (1990) 68–80.
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gribomont, E.P., Zenner, G. (1998). Automated verification of Szymanski's algorithm. In: Steffen, B. (eds) Tools and Algorithms for the Construction and Analysis of Systems. TACAS 1998. Lecture Notes in Computer Science, vol 1384. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054187
Download citation
DOI: https://doi.org/10.1007/BFb0054187
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64356-2
Online ISBN: 978-3-540-69753-4
eBook Packages: Springer Book Archive