Liveness with (0,1, ∞)- Counter Abstraction

  • Amir Pnueli
  • Jessie Xu
  • Lenore Zuck
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2404)


We introduce the (0, 1, ∞) -counter abstraction method by which a parameterized system of unbounded size is abstracted into a finite-state system. Assuming that each process in the parameterized system is finite-state, the abstract variables are limited counters which count, for each local states of a process, the number of processes which currently are in local state s. The counters are saturated at 2, which means that κ(s) = 2 whenever 2 or more processes are at state s. The emphasis of the paper is on the derivation of an adequate and sound set of fairness requirements (both weak and strong) that enable proofs of liveness properties of the abstract system, from which we can safely conclude a corresponding liveness property of the original parameterized system. We illustrate the method on few parameterized systems, including Szymanski’s Algorithm for mutual exclusion. The method is also extended to deal with parameterized systems whose processes may have infinitely many local states, such as the Bakery Algorithm, by choosing few “interesting” state assertions and (0, 1, ∞)-counting the number of processes satisfying them.


Model Check Mutual Exclusion Abstract System Liveness Property Concrete System 
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. Kozen. Limits for automatic program verification of finite-state concurrent systems. IPL, 22(6), 1986.Google Scholar
  2. 2.
    T. Arons, A. Pnueli, S. Ruah, J. Xu, and L. Zuck. Parameterized verification with automatically computed inductive assertions. In CAV’01, pages 221–234, 2001.Google Scholar
  3. 3.
    K. Baukus, Y. Lakhnesche, and K. Stahl. Verification of parameterized protocols. Journal of Universal Computer Science, 7(2):141–158, 2001.zbMATHMathSciNetGoogle Scholar
  4. 4.
    N. Bjørner, I. Browne, and Z. Manna. Automatic generation of invariants and intermediate assertions. In 1st Intl. Conf. on Principles and Practice of Constraint Programming, volume 976 of LNCS, pages 589–623. Springer-Verlag, 1995.Google Scholar
  5. 5.
    E. Clarke, O. Grumberg, and S. Jha. Verifying parametrized networks using abstraction and regular languages. In CONCUR’95, pages 395–407, 1995.Google Scholar
  6. 6.
    P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL’ 77. ACM Press, 1977.Google Scholar
  7. 7.
    E. Emerson and V. Kahlon. Reducing model checking of the many to the few. In 17th International Conference on Automated Deduction (CADE-17), pages 236–255, 2000.Google Scholar
  8. 8.
    E. A. Emerson and K. S. Namjoshi. Reasoning about rings. In POPL’95, 1995.Google Scholar
  9. 9.
    E. Gribomont and G. Zenner. Automated verification of szymanski’s algorithm. In B. Steffen, editor, TACAS’98, pages 424–438, 1998.Google Scholar
  10. 10.
    V. Gyuris and A. P. Sistla. On-the-fly model checking under fairness that exploits symmetry. In CAV’97, 1997.Google Scholar
  11. 11.
    J. Henriksen, J. Jensen, M. Jørgensen, N. Klarlund, B. Paige, T. Rauhe, and A. Sandholm. Mona: Monadic second-order logic in practice. In TACAS’95, 1995.Google Scholar
  12. 12.
    B. Jonsson and M. Nilsson. Transitive closures of regular relations for verifying infinite-state systems. In TACAS’00, 2000.Google Scholar
  13. 13.
    Y. Kesten, O. Maler, M. Marcus, A. Pnueli, and E. Shahar. Symbolic model checking with rich assertional languages. In CAV’97, pages 424–435, 1997.Google Scholar
  14. 14.
    Y. Kesten and A. Pnueli. Control and data abstractions: The cornerstones of practical formal verification. Software Tools for Technology Transfer, 4(2):328–342, 2000.CrossRefGoogle Scholar
  15. 15.
    D. Lesens, N. Halbwachs, and P. Raymond. Automatic verification of parameterized linear networks of processes. In POPL’ 97, Paris, 1997.Google Scholar
  16. 16.
    O. Lichtenstein and A. Pnueli. Checking that finite-state concurrent programs satisfy their linear specification. In POPL’85, pages 97–107, 1985.Google Scholar
  17. 17.
    B.D. Lubachevsky. An approach to automating the verification of compact parallel coordination programs. Acta Infromatica, 21, 1984.Google Scholar
  18. 18.
    Z. Manna, A. Anuchitanukul, N. Bjørner, A. Browne, E. Chang, M. Colón, L. D. Alfaro, H. Devarajan, H. Sipma, and T. Uribe. STeP: The Stanford Temporal Prover. Technical Report STAN-CS-TR-94-1518, Dept. of Comp. Sci., Stanford University, Stanford, California, 1994.Google Scholar
  19. 19.
    Z. Manna and A. Pnueli. Temporal Verification of Reactive Systems: Safety. Springer-Verlag, New York, 1995.Google Scholar
  20. 20.
    K. McMillan. Verification of an implementation of Tomasulo’s algorithm by compositional model checking. In CAV’98, pages 110–121, 1998.Google Scholar
  21. 21.
    A. Pnueli and E. Shahar. A platform for combining deductive with algorithmic verification. In CAV’96, pages 184–195, 1996.Google Scholar
  22. 22.
    F. Pong and M. Dubois. A new approach for the verification of cache coherence protocols. IEEE Transactions on Parallel and Distributed Systems, 6(8):773–787, Aug. 1995.Google Scholar
  23. 23.
    B. K. Szymanski. A simple solution to Lamport’s concurrent programming problem with linear wait. In Proc. 1988 International Conference on Supercomputing Systems, pages 621–626, St. Malo, France, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Amir Pnueli
    • 1
  • Jessie Xu
    • 2
  • Lenore Zuck
    • 2
  1. 1.Weizmann Institute of ScienceRehovotIsrael
  2. 2.New York University

Personalised recommendations