Abstract
We review a number of formal verification techniques supported by STeP, the Stanford Temporal Prover, describing how the tool can be used to verify properties of several versions of the Bakery Mutual exclusion algorithm for mutual exclusion. We verify the classic two-process algorithm and simple variants, as well as an atomic parameterized version. The methods used include deductive verification rules, verification diagrams, automatic invariant generation, and finite-state model checking and abstraction.
Similar content being viewed by others
References
R. Alur and T.A. Henzinger (Eds.), Proc. 8th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1102, Springer-Verlag, July 1996.
C. Barrett, D.L. Dill, and J. Levitt, “Validity checking for combinations of theories with equality, ” in 1st Intl. Conf. on Formal Methods in Computer-Aided Design. LNCS, Vol. 1166, Nov. 1996, pp. 187–201.
S. Bensalem, Y. Lakhnech, and S. Owre, “Computing abstractions of infinite state systems compositionally and automatically, ” in A.J. Hu and M.Y. Vardi (Eds.), Proc. 10th Intl. Conferance on Computer Aided Verification. LNCS, Vol. 1427, Springer-Verlag, June 1998, pp. 319–331.
S. Bensalem, Y. Lakhnech, and H. Saidi, “Powerful techniques for the automatic generation of invariants, ” in R. Alur and T.A. Henzinger (Eds.), Proc. 8th Intl. Conferance on Computer Aided Verification. LNCS, Vol. 1102, Springer-Verlag, July 1996, pp. 323–335.
N.S. Bjørner, “Integrating decision procedures for temporal verification, ” PhD Thesis, Computer Science Department, Stanford University, Nov. 1998.
N.S. Bjørner, A. Browne, E.S. Chang, M. Colón, A. Kapur, Z. Manna, H.B. Sipma, and T.E. Uribe, “STeP: The Stanford Temporal Prover, ” User's Manual, Technical Report STAN-CS-TR-95-1562, Computer Science Department, Stanford University, Nov. 1995.
N.S. Bjørner, A. Browne, E.S. Chang, M. Colón, A. Kapur, Z. Manna, H.B. Sipma, and T.E. Uribe, “STeP: Deductive-algorithmic verification of reactive and real-time systems, ” in R. Alur and T.A. Henzinger (Eds.), Proc. 8th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1102, Springer-Verlag, July 1996, pp. 415–418.
N.S. Bjørner, A. Browne, and Z. Manna, “Automatic generation of invariants and intermediate assertions, ” Theoretical Computer Science, Vol. 173, No. 1, pp. 49–87, February 1997. Preliminary version appeared in 1st Intl. Conf. on Principles and Practice of Constraint Programming, LNCS, Vol. 976, Springer-Verlag, 1995, pp. 589-623.
N.S. Bjørner, U. Lerner, and Z. Manna, “Deductive verification of parameterized fault-tolerant systems: A case study, ” in Proc. Intl. Conf. on Temporal Logic, Kluwer.
N.S. Bjørner, Z. Manna, H.B. Sipma, and T.E. Uribe, “Deductive verification of real-time systems using STeP, ” Technical Report STAN-CS-TR-98-1616, Stanford University, Jan. 1998. To appear in Theoretical Computer Science. Preliminary version appeared in 4th Intl. AMASTWorkshop on Real-Time Systems, LNCS, Vol. 1231, Springer-Verlag, May 1997, pp. 484–498.
N.S. Bjørner, M.E. Stickel, and T.E. Uribe, “A practical integration of first-order reasoning and decision procedures, ” in Proc. of the 14th Intl. Conference on Automated Deduction. LNCS, Vol. 1249, Springer-Verlag, July 1997, pp. 101–115.
E. Börger (Ed.), Specification and Validation Methods, Oxford University Press, International Schools for Computer Scientists, 1994.
E. Börger, Y. Gurevich, and D. Rosenzweig, “The Bakery algorithm: Yet another specification and veri-fication, ” in E. Börger (Ed.), Specification and Validation Methods, Oxford University Press, International Schools for Computer Scientists, 1994, pp. 231–243.
R.S. Boyer and J.S. Moore, “Integrating decision procedures into heuristic theorem provers: A case study with linear arithmetic, ” Machine Intelligence, Vol. 11, pp. 83–124, 1988.
J.C. Bradfield and C. Stirling, “Local model checking for infinite state spaces, ” Theoretical Computer Science, Vol. 96, No. 1, pp. 157–174, Apr. 1992.
A. Browne, Z. Manna, and H.B. Sipma, “Generalized temporal verification diagrams, ” in 15th Conference on the Foundations of Software Technology and Theoretical Computer Science. LNCS, Vol. 1026, Springer-Verlag, 1995, pp. 484–498.
R.E. Bryant, “Graph-based algorithms for Boolean function manipulation, ” IEEE Transactions on Computers, Vol. C-35, No. 8, pp. 677–691, Aug. 1986.
E.S. Chang, Z. Manna, and A. Pnueli, “Characterization of temporal property classes, ” in W. Kuich (Ed.), Proc. 19th Intl. Colloq. Aut. Lang. Prog. LNCS, Vol. 623, Springer-Verlag, 1992, pp. 474–486.
E.M. Clarke and E.A. Emerson, “Design and synthesis of synchronization skeletons using branching time temporal logic, ” in Proc. IBM Workshop on Logics of Programs. LNCS, Vol. 131, Springer-Verlag, 1981, pp. 52–71.
E.M. Clarke, O. Grumberg, and D.E. Long, “Model checking and abstraction, ” ACM Trans. on Programming Languages and Systems, Vol. 16, No. 5, pp. 1512–1542, Sept. 1994.
M.A. Colón and T.E. Uribe, “Generating finite-state abstractions of reactive systems using decision procedures, ” in A.J. Hu and M.Y. Vardi (Eds.), in Proc. 10th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1427, Springer-Verlag, 1998, pp. 293–304.
P. Cousot and R. Cousot, “Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints, ” in 4th ACM Symp. Princ. of Prog. Lang., ACM Press, 1977, pp. 238–252.
P. Cousot and N. Halbwachs, “Automatic discovery of linear restraints among the variables of a program, ” in 5th ACM Symp. Princ. of Prog. Lang., Jan. 1978.
D.R. Dams, “Abstract interpretation and partition refinement for model checking, ” PhD Thesis, Eindhoven University of Technology, July 1996.
D.L. Detlefs, K.R.M. Leino, G. Nelson, and J.B. Saxe, “Extended static checking, ” Technical Report 159, Compaq SRC, Dec. 1998.
L. Fix and O. Grumberg, “Verification of temporal properties, ” J. Logic and Computation, Vol. 6, No. 3, pp. 343–362, 1996.
S.M. German and B. Wegbreit, “A synthesizer of inductive assertions, ” IEEE transactions on Software Engineering, Vol. 1, No. 1, pp. 68–75, March 1975.
M. Gordon and T.F. Melham, Introduction to HOL: A Theorem Proving Environment for Higher Order Logic, Cambridge University Press, 1993.
S. Graf and H. Saidi, “Construction of abstract state graphs with PVS, ” in O. Grumberg (Ed.), Proc. 9th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1254, Springer-Verlag, June 1997, pp. 72–83.
R. Hardin, Z. Har'El, and R. Kurshan, “COSPAN, ” in R. Alur and T.A. Henzinger (Eds.), Proc. 8th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1102, Springer-Verlag, July 1996, pp. 423–427.
G.J. Holzmann and D. Peled, “The state of SPIN, ” In R. Alur and T.A. Henzinger (Eds.), Proc. 8th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1102, Springer-Verlag, July 1996, pp. 385–389.
A.J. Hu and M.Y. Vardi (Eds.), Proc. 10th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1427, Springer-Verlag, June 1998.
Y. Kesten, Z. Manna, and A. Pnueli, “Temporal verification of simulation and refinement, ” in J.W. de Bakker, C. Huizing, W.-P. de Roever, and G. Rosenberg (Eds.), “A Decade of Concurrency: Reflections and Perspectives,” LNCS, Vol. 803, Springer-Verlag, 1994, pp. 273–346.
Y. Kesten, Z. Manna, and A. Pnueli, “Verifying clocked transition systems, ” in R. Alur, T.A. Henzinger, and E.D. Sontag (Eds.), Hybrid Systems III, LNCS, Vol. 1066, Springer-Verlag, 1996, pp. 13–40.
R.P. Kurshan, “Testing containment of ω-regular languages, ” Technical Report 1121-861010-33, Bell Labs, 1986.
R.P. Kurshan, Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach, Princeton University Press, 1994.
L. Lamport, “A new solution of Dijkstra's concurrent programming problem, ” Communications of the ACM, Vol. 17, No. 8, pp. 435–455, 1974.
L. Lamport, “The synchronization of independent processes, ” Acta Informatica, Vol. 7, No. 1, pp. 15–34, 1976.
L. Lamport, “The temporal logic of actions, ” ACM Transactions on Programming Languages and Systems, Vol. 16, No. 3, pp. 872–923, May 1994.
L. Lamport and L.C. Paulson, “Should your specification language be typed?” Research Report 147, DEC Systems Research Center, Palo Alto, CA, May 1997.
C. Loiseaux, S. Graf, J. Sifakis, A. Bouajjani, and S. Bensalem, “Property preserving abstractions for the verification of concurrent systems, ” Formal Methods in System Design, Vol. 6, pp. 1–35, 1995.
Z. Manna, A. Anuchitanukul, N. Bjørner, A. Browne, E.S. Chang, M. Colón, L. de Alfaro, H. Devarajan, H.B. Sipma, and T.E. Uribe, “STeP: The Stanford temporal prover, ” Technical Report STAN-CS-TR-94-1518, Computer Science Department, Stanford University, July 1994.
Z. Manna, A. Browne, H.B. Sipma, and T.E. Uribe, “Visual abstractions for temporal verification, ” in A. Haeberer (Ed.), Algebraic Methodology and Software Technology (AMAST'98), LNCS, Vol. 1548, Springer-Verlag, Dec. 1998, pp. 28–41.
Z. Manna, M.A. Colón, B. Finkbeiner, H.B. Sipma, and T.E. Uribe, “Abstraction and modular verification of infinite-state reactive systems, ” in M. Broy (Ed.), Requirements Targeting Software and Systems Engineering (RTSE). LNCS, Vol. 1526, Springer-Verlag, 1997, pp. 273–292.
Z. Manna and A. Pnueli, “Completing the temporal picture, ” Theoretical Computer Science, Vol. 83, No. 1, pp. 97–130, 1991.
Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, New York, 1991.
Z. Manna and A. Pnueli, “Models for reactivity, ” Acta Informatica, Vol. 30, pp. 609–678, 1993.
Z. Manna and A. Pnueli, “Temporal verification diagrams, ” in M. Hagiya and J.C. Mitchell (Eds.), Proc. International Symposium on Theoretical Aspects of Computer Software. LNCS, Vol. 789, Springer-Verlag, 1994, pp. 726–765.
Z. Manna and A. Pnueli, “Verification of parameterized programs, ” in Börger (Ed.), Specification and Validation Methods, Oxford University Press, International Schools for Computer Scientists, 1994, pp. 167–230.
Z. Manna and A. Pnueli, Temporal Verification of Reactive Systems: Safety, Springer-Verlag, New York, 1995.
Z. Manna and H.B. Sipma, “Deductive verification of hybrid systems using STeP, ” in T. Henzinger and S. Sastry (Eds.), Hybrid Systems: Computation and Control. LNCS, Vol. 1386, Springer-Verlag, Apr. 1998, pp. 305–318.
Z. Manna and H.B. Sipma, “Verification of parameterized systems by dynamic induction on diagrams, ” in Proc. 11th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1633, Springer-Verlag, 1999, pp. 25–43.
K.L. McMillan, Symbolic Model Checking, Kluwer Academic Pub., 1993.
G. Nelson and D.C. Oppen, “Fast decision procedures based on congruence closure, ” J. ACM, Vol. 27, No. 2, pp. 356–364, Apr. 1980.
S. Owre, S. Rajan, J.M. Rushby, N. Shankar, and M.K. Srivas, “PVS: Combining specification, proof checking, and model checking, ” in R. Alur and T.A. Henzinger (Eds.), in Proc. 8th Intl. Conference on Computer Aided Verification. LNCS, Vol. 1102, Springer-Verlag, July 1996, pp. 411–414.
A. Pnueli, “The temporal logic of programs, ” in Proc. 18th IEEE Symp. Found. of Comp. Sci., IEEE Computer Society Press, 1977, pp. 46–57.
A. Pnueli, “Lecture notes: the Bakery algorithm, ” Draft Manuscript, Weizmann Institute of Science, Israel, May 1996.
J. Queille and J. Sifakis, “Specification and verification of concurrent systems in CESAR, ” in M. Dezani-Ciancaglini and U. Montanari (Eds.), Intl. Symposium on Programming. LNCS, Vol. 137, Springer-Verlag, 1982, pp. 337–351.
R.E. Shostak, “Deciding combinations of theories, ” J. ACM, Vol. 31. No. 1, pp. 1–12, Jan. 1984.
H.B. Sipma, “Diagram-based verification of discrete, real-time and hybrid systems, ” Ph.D. Thesis, Computer Science Department, Stanford University, Feb. 1999.
W. Thomas, “Automata on infinite objects, ” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, Vol. B, Elsevier Science Publishers (North-Holland), 1990, pp. 133–191.
T.E. Uribe, “Abstraction-based deductive-algorithmic verification of reactive systems, ” PhD Thesis, Computer Science Department, Stanford University, Dec. 1998. Technical Report STAN-CS-TR-99-1618.
M.Y. Vardi and P. Wolper, “Automata-theoretic techniques for modal logics of programs, ” J. Comp. Sys. Sci., Vol. 32, pp. 183–221, 1986.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Bjørner, N.S., Browne, A., Colón, M.A. et al. Verifying Temporal Properties of Reactive Systems: A STeP Tutorial. Formal Methods in System Design 16, 227–270 (2000). https://doi.org/10.1023/A:1008700623084
Issue Date:
DOI: https://doi.org/10.1023/A:1008700623084