Thread-Modular Model Checking with Iterative Refinement

  • Wenrui Meng
  • Fei He
  • Bow-Yaw Wang
  • Qiang Liu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7226)


Thread-modular analysis is an incomplete compositional technique for verifying concurrent systems. The heuristic works rather well when there is limited interaction among system components. In this paper, we develop a refinement algorithm that makes thread-modular model checking complete. Our algorithm refines abstract reachable states by exposing local information through auxiliary variables. The experiments show that our complete thread-modular model checking can outperform other complete compositional reasoning techniques.


Model Check Global Variable Critical Section Mutual Exclusion Reachable State 
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.
    Arons, T., Pnueli, A., Ruah, S., Xu, J., Zuck, L.: Parameterized Verification with Automatically Computed Inductive Assertions. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 221–234. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  2. 2.
    Clarke, E., Emerson, E.: Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  3. 3.
    Cohen, A., Namjoshi, K.S., Sa’ar, Y.: SPLIT: A Compositional LTL Verifier. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 558–561. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  4. 4.
    Cohen, A., Namjoshi, K.: Local proofs for global safety properties. Formal Methods in System Design 34(2), 104–125 (2009)zbMATHCrossRefGoogle Scholar
  5. 5.
    Flanagan, C., Qadeer, S.: Thread-Modular Model Checking. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 213–224. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Gu, M., Liu, Q.: Automatic compositional reasoning for multi-thread programs. In: 15th International Conference on Computer Supported Cooperative Work in Design (CSCWD), pp. 175–182 (2011)Google Scholar
  7. 7.
    Henzinger, T.A., Jhala, R., Majumdar, R., Qadeer, S.: Thread-Modular Abstraction Refinement. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 262–274. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  8. 8.
    Henzinger, T., Jhala, R., Majumdar, R.: Race checking by context inference. ACM SIGPLAN Notices 39(6), 1–13 (2004)CrossRefGoogle Scholar
  9. 9.
    Jones, C.: Development methods for computer programs including a notion of interference. PhD thesis, Oxford University, June 1981. Printed as: Programming Research Group, Technical Monograph 25 (1981)Google Scholar
  10. 10.
    Jones, C.: Tentative steps toward a development method for interfering programs. ACM Transactions on Programming Languages and Systems (TOPLAS) 5(4), 596–619 (1983)zbMATHCrossRefGoogle Scholar
  11. 11.
    Lamport, L.: Proving the correctness of multiprocess programs. IEEE Transactions on Software Engineering (2), 125–143 (1977)Google Scholar
  12. 12.
    Malkis, A., Podelski, A., Rybalchenko, A.: Thread-Modular Counterexample-Guided Abstraction Refinement. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 356–372. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  13. 13.
    Misra, J., Chandy, K.: Proofs of networks of processes. IEEE Transactions on Software Engineering (4), 417–426 (1981)Google Scholar
  14. 14.
    Namjoshi, K.S.: Symmetry and Completeness in the Analysis of Parameterized Systems. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol. 4349, pp. 299–313. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  15. 15.
    Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Communications of the ACM 19(5), 279–285 (1976)MathSciNetzbMATHCrossRefGoogle Scholar
  16. 16.
    Pnueli, A., Ruah, S., Zuck, L.D.: Automatic Deductive Verification with Invisible Invariants. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 82–97. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. 17.
    Queille, J., Sifakis, J.: Specification and Verification of Concurrent Systems in Cesar. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 337–351. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  18. 18.

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Wenrui Meng
    • 1
    • 2
    • 3
  • Fei He
    • 1
    • 2
    • 3
  • Bow-Yaw Wang
    • 4
  • Qiang Liu
    • 1
    • 2
    • 3
  1. 1.School of SoftwareTsinghua UniversityChina
  2. 2.Tsinghua National Laboratory for Information Science Technology (TNList)China
  3. 3.Key Laboratory for Information System SecurityMOEChina
  4. 4.Institute of Information ScienceAcademia SinicaChina

Personalised recommendations