Symbolic Model Checking of Concurrent Programs Using Partial Orders and On-the-Fly Transactions

  • Vineet Kahlon
  • Aarti Gupta
  • Nishant Sinha
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4144)


The state explosion problem is one of the core bottlenecks in the model checking of concurrent software. We show how to ameliorate the problem by combining the ability of partial order techniques to reduce the state space of the concurrent program with the power of symbolic model checking to explore large state spaces. Our new verification methodology involves translating the given concurrent program into a circuit-based model which gives us the flexibility to then employ any model checking technique of choice – either SAT or BDD-based – for verifying a broad range of linear time properties, not just safety. The reduction in the explored state-space is obtained by statically augmenting the symbolic encoding of the program by additional constraints. These constraints restrict the scheduler to choose from a minimal conditional stubborn set of transitions at each state. Another key contribution of the paper, is a new method for detecting transactions on-the-fly which takes into account patterns of lock acquisition and yields better reductions than existing methods which rely on a lockset based analysis. Moreover unlike existing techniques, identifying on-the-fly transactions does not require the program to follow a lock discipline in accessing shared variables. We have applied our techniques to the Daisy test bench and shown the existence of several bugs.


Model Check Global State Concurrent Program Context Switch Symbolic Model Check 
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. [ABH+01]
    Alur, R., Brayton, R.K., Henzinger, T.A., Qadeer, S., Rajamani, S.K.: Partial-order reduction in symbolic state-space exploration. Form. Methods Syst. Des. 18(2), 97–116 (2001)MATHCrossRefGoogle Scholar
  2. [AQR+04]
    Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Xie, Y.: Zing: Exploiting program structure for model checking concurrent software. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 1–15. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. [BCCY99]
    Biere, A., Cimatti, A., Clarke, E.M., Zhu, Y.: Symbolic model checking without BDDs. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, p. 193. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  4. [CKS05]
    Cook, B., Kroening, D., Sharygina, N.: Symbolic model checking for asynchronous boolean programs. In: Godefroid, P. (ed.) SPIN 2005. LNCS, vol. 3639, pp. 75–90. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. [dai]
    Joint CAV/ISSTA Special Event on Specification, Verification, and Testing of Concurrent Software,
  6. [FG05]
    Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: POPL 2005, pp. 110–121 (2005)Google Scholar
  7. [FQ03]
    Flanagan, C., Qadeer, S.: Transactions for software model checking. In: SoftMC 2003 (2003)Google Scholar
  8. [GLST05]
    Grumberg, O., Lerda, F., Strichman, O., Theobald, M.: Proof-guided underapproximation widening for multi process systems. In: POPL 2005, pp. 122–131 (2005)Google Scholar
  9. [God96]
    Godefroid, P.: Partial-order methods for the verification of concurrent systems: an approach to the state-explosion problem. LNCS, vol. 1032. Springer, Heidelberg (1996)Google Scholar
  10. [God97]
    Godefroid, P.: Model checking for programming languages using verisoft. In: POPL 1997, pp. 174–186 (1997)Google Scholar
  11. [ISGG05]
    Ivančić, F., Shlyakhter, I., Gupta, A., Ganai, M.: Model checking c programs using F-Soft. In: ICCD (2005)Google Scholar
  12. [KLM+98]
    Kurshan, R.P., Levin, V., Minea, M., Peled, D., Yenigün, H.: Static partial order reduction. In: Steffen, B. (ed.) TACAS 1998. LNCS, vol. 1384, p. 345. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  13. [LPQR05]
    Levin, V., Palmer, R., Qadeer, S., Rajamani, S.K.: Sound transaction-based reduction without cycle detection. In: Godefroid, P. (ed.) SPIN 2005. LNCS, vol. 3639, pp. 106–122. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  14. [LST03]
    Lerda, F., Sinha, N., Theobald, M.: Symbolic model checking of software. Electr. Notes Theor. Comput. Sci. 89(3) (2003)Google Scholar
  15. [McM93]
    McMillan, K.L.: Symbolic model checking: an approach to the state explosion problem. Kluwer Academic Publishers, Dordrecht (1993)Google Scholar
  16. [RG05]
    Rabinovitz, I., Grumberg, O.: Bounded model checking of concurrent programs. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 82–97. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  17. [SC03]
    Stoller, S.D., Cohen, E.: Optimistic synchronization-based state-space reduction. In: Garavel, H., Hatcliff, J. (eds.) ETAPS 2003 and TACAS 2003. LNCS, vol. 2619, pp. 489–504. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  18. [Sto02]
    Stoller, S.D.: Model-checking multi-threaded distributed Java programs. International Journal on Software Tools for Technology Transfer 4(1), 71–91 (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Vineet Kahlon
    • 1
  • Aarti Gupta
    • 1
  • Nishant Sinha
    • 2
  1. 1.NEC Laboratories AmericaPrincetonUSA
  2. 2.Carnegie Mellon UniversityPittsburghUSA

Personalised recommendations