Fair Model Checking with Process Counter Abstraction

  • Jun Sun
  • Yang Liu
  • Abhik Roychoudhury
  • Shanshan Liu
  • Jin Song Dong
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5850)


Parameterized systems are characterized by the presence of a large (or even unbounded) number of behaviorally similar processes, and they often appear in distributed/concurrent systems. A common state space abstraction for checking parameterized systems involves not keeping track of process identifiers by grouping behaviorally similar processes. Such an abstraction, while useful, conflicts with the notion of fairness. Because process identifiers are lost in the abstraction, it is difficult to ensure fairness (in terms of progress in executions) among the processes. In this work, we study the problem of fair model checking with process counter abstraction. Even without maintaining the process identifiers, our on-the-fly checking algorithm enforces fairness by keeping track of the local states from where actions are enabled / executed within an execution trace. We enhance our home-grown PAT model checker with the technique and show its usability via the automated verification of several real-life protocols.


Model Check Connected Subgraph Strongly Connect Component Linear Temporal Logic Model Check Algorithm 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Agesen, O., Detlefs, D., Garthwaite, A., Knippel, R., Ramakrishna, Y.S., White, D.: An Efficient Meta-Lock for Implementing Ubiquitous Synchronization. In: OOPSLA, pp. 207–222 (1999)Google Scholar
  2. 2.
    Apt, K.R., Kozen, D.: Limits for automatic verification of finite-state concurrent systems. Inf. Process. Lett. 22(6), 307–309 (1986)CrossRefMathSciNetGoogle Scholar
  3. 3.
    Attiya, H., Welch, J.: Distributed Computing: Fundamentals, Simulations, and Advanced Topics, 2nd edn. John Wiley & Sons, Inc., Publication, Chichester (2004)Google Scholar
  4. 4.
    Bosnacki, D., Ioustinova, N., Sidorova, N.: Using Fairness to Make Abstractions Work. In: Graf, S., Mounier, L. (eds.) SPIN 2004. LNCS, vol. 2989, pp. 198–215. Springer, Heidelberg (2004)Google Scholar
  5. 5.
    Clarke, E.M., Filkorn, T., Jha, S.: Exploiting Symmetry In Temporal Logic Model Checking. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 450–462. Springer, Heidelberg (1993)Google Scholar
  6. 6.
    Dams, D., Gerth, R., Grumberg, O.: Fair Model Checking of Abstractions. In: VCL 2000 (2000)Google Scholar
  7. 7.
    Delzanno, G.: Automatic Verification of Parameterized Cache Coherence Protocols. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 53–68. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  8. 8.
    Emerson, E.A., Namjoshi, K.S.: On Reasoning About Rings. Int. J. Found. Comput. Sci. 14(4), 527–550 (2003)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Emerson, E.A., Sistla, A.P.: Utilizing Symmetry when Model-Checking under Fairness Assumptions: An Automata-Theoretic Approach. ACM Trans. Program. Lang. Syst. 19(4), 617–638 (1997)CrossRefGoogle Scholar
  10. 10.
    Fang, Y., McMillan, K.L., Pnueli, A., Zuck, L.D.: Liveness by Invisible Invariants. In: Najm, E., Pradat-Peyre, J.-F., Donzeau-Gouge, V.V. (eds.) FORTE 2006. LNCS, vol. 4229, pp. 356–371. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  11. 11.
    Fischer, M.J., Jiang, H.: Self-stabilizing Leader Election in Networks of Finite-state Anonymous Agents. In: Shvartsman, M.M.A.A. (ed.) OPODIS 2006. LNCS, vol. 4305, pp. 395–409. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. 12.
    Geldenhuys, J., Valmari, A.: More efficient on-the-fly LTL verification with Tarjan’s algorithm. Theoretical Computer Science 345(1), 60–82 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    German, S.M., Sistla, A.P.: Reasoning about Systems with Many Processes. J. ACM 39(3), 675–735 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Gyuris, V., Sistla, A.P.: On-the-Fly Model Checking Under Fairness That Exploits Symmetry. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 232–243. Springer, Heidelberg (1997)Google Scholar
  15. 15.
    Hammer, M., Knapp, A., Merz, S.: Truly On-the-Fly LTL Model Checking. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 191–205. Springer, Heidelberg (2005)Google Scholar
  16. 16.
    Henzinger, M.R., Telle, J.A.: Faster Algorithms for the Nonemptiness of Streett Automata and for Communication Protocol Pruning. In: Karlsson, R., Lingas, A. (eds.) SWAT 1996. LNCS, vol. 1097, pp. 16–27. Springer, Heidelberg (1996)Google Scholar
  17. 17.
    Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison Wesley, Reading (2003)Google Scholar
  18. 18.
    Ip, C.N., Dill, D.L.: Verifying Systems with Replicated Components in Mur&b.phiv. Formal Methods in System Design 14(3), 273–310 (1999)CrossRefGoogle Scholar
  19. 19.
    Jonsson, B., Saksena, M.: Systematic Acceleration in Regular Model Checking. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 131–144. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  20. 20.
    Kesten, Y., Pnueli, A., Raviv, L., Shahar, E.: Model Checking with Strong Fairness. Formal Methods and System Design 28(1), 57–84 (2006)zbMATHCrossRefGoogle Scholar
  21. 21.
    Lesens, D., Halbwachs, N., Raymond, P.: Automatic Verification of Parameterized Linear Networks of Processes. In: POPL, pp. 346–357 (1997)Google Scholar
  22. 22.
    Nitsche, U., Wolper, P.: Relative Liveness and Behavior Abstraction (Extended Abstract). In: PODC 1997, pp. 45–52 (1997)Google Scholar
  23. 23.
    Pnueli, A., Xu, J., Zuck, L.D.: Liveness with (0, 1, infty)-Counter Abstraction. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 107–122. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  24. 24.
    Pong, F., Dubois, M.: A New Approach for the Verification of Cache Coherence Protocols. IEEE Trans. Parallel Distrib. Syst. 6(8), 773–787 (1995)CrossRefGoogle Scholar
  25. 25.
    Pong, F., Dubois, M.: Verification Techniques for Cache Coherence Protocols. ACM Comput. Surv. 29(1), 82–126 (1996)CrossRefGoogle Scholar
  26. 26.
    Sun, J., Liu, Y., Dong, J.S., Pang, J.: PAT: Towards Flexible Verification under Fairness. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 709–714. Springer, Heidelberg (2009)Google Scholar
  27. 27.
    Sun, J., Liu, Y., Dong, J.S., Wang, H.H.: Specifying and verifying event-based fairness enhanced systems. In: Liu, S., Maibaum, T., Araki, K. (eds.) ICFEM 2008. LNCS, vol. 5256, pp. 318–337. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  28. 28.
    Treiber, R.K.: Systems programming: Coping with parallelism. Technical report (1986)Google Scholar
  29. 29.
    Ultes-Nitsche, U., St. James, S.: Improved Verification of Linear-time Properties within Fairness: Weakly Continuation-closed Behaviour Abstractions Computed from Trace Reductions. Softw. Test., Verif. Reliab. 13(4), 241–255 (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Jun Sun
    • 1
  • Yang Liu
    • 1
  • Abhik Roychoudhury
    • 1
  • Shanshan Liu
    • 1
  • Jin Song Dong
    • 1
  1. 1.School of ComputingNational University of Singapore 

Personalised recommendations