Thread-Modular Counterexample-Guided Abstraction Refinement

  • Alexander Malkis
  • Andreas Podelski
  • Andrey Rybalchenko
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6337)


We consider the refinement of a static analysis method called thread-modular verification. It was an open question whether such a refinement can be done automatically. We present a counterexample-guided abstraction refinement algorithm for thread-modular verification and demonstrate its potential, both theoretically and practically.


Critical Section Critical Location Mutual Exclusion Static Analysis Method Shared 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.
    Bouajjani, A., Esparza, J., Touili, T.: A generic approach to the static analysis of concurrent programs with procedures. Int. J. Found. Comput. Sci. 14(4), 551 (2003)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Bradford Nichols, J.P.F., Buttlar, D.: Pthreads programming. O’Reilly & Associates, Inc, Sebastopol (1996)Google Scholar
  3. 3.
    Chaki, S., Clarke, E.M., Kidd, N., Reps, T.W., Touili, T.: Verifying concurrent message-passing C programs with recursive calls. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 334–349. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Clarke, E.M., Talupur, M., Veith, H.: Environment abstraction for parameterized verification. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 126–141. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    Cohen, A., Namjoshi, K.S.: Local proofs for global safety properties. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 55–67. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Cousot, P., Cousot, R.: Invariance proof methods andanalysis techniques for parallel programs. In: Automatic Program Construction Techniques, pp. 243–271. Macmillan, Basingstoke (1984)Google Scholar
  7. 7.
    Cousot, P., Ganty, P., Raskin, J.-F.: Fixpoint-guided abstraction refinements. In: Nielson and Filé [26], pp. 333–348Google Scholar
  8. 8.
    de Roever, W.-P.: A compositional approach to concurrency and its applications. Manuscript (2003)Google Scholar
  9. 9.
    Esparza, J., Ganty, P., Schwoon, S.: Locality-based abstractions. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, pp. 118–134. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    Flanagan, C., Freund, S.N., Qadeer, S., Seshia, S.A.: Modular verification of multithreaded programs. Theor. Comput. Sci. 338(1-3), 153–183 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    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
  12. 12.
    Ganty, P.: The Fixpoint Checking Problem: An Abstraction Renement Perspective. PhD thesis, Université Libre de Bruxelles (2007)Google Scholar
  13. 13.
    Henzinger, T.A., Jhala, R., Majumdar, R.: Race checking by context inference. In: Pugh, W., Chambers, C. (eds.) PLDI, pp. 1–13. ACM, New York (2004)CrossRefGoogle Scholar
  14. 14.
    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
  15. 15.
    Holzmann, G.: The Spin model checker: Primer and reference manual. Addison-Wesley, Reading ISBN 0-321-22862-6,
  16. 16.
    Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM Trans. Program. Lang. Syst. 5(4), 596–619 (1983)zbMATHCrossRefGoogle Scholar
  17. 17.
    Kahlon, V., Sankaranarayanan, S., Gupta, A.: Semantic reduction of thread interleavings in concurrent programs. In: Kowalewski, S., Philippou, A. (eds.) TACAS. LNCS, vol. 5505, pp. 124–138. Springer, Heidelberg (2009)Google Scholar
  18. 18.
    Lal, A., Reps, T.W.: Reducing concurrent analysis under a context bound to sequential analysis. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 37–51. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  19. 19.
    Leroy, X.: Pthreads linux manual pages,
  20. 20.
    Malkis, A.: Cartesian Abstraction and Verification of Multithreaded Programs. PhD thesis, Albert-Ludwigs-Universität Freiburg (2010)Google Scholar
  21. 21.
    Malkis, A., Podelski, A.: Refinement with exceptions. Technical report (2008),
  22. 22.
    Malkis, A., Podelski, A., Rybalchenko, A.: Thread-modular verification and Cartesian abstraction. In: Presentation at TV 2006 (2006)Google Scholar
  23. 23.
    Malkis, A., Podelski, A., Rybalchenko, A.: Thread-modular verification is Cartesian abstract interpretation. In: Barkaoui, K., Cavalcanti, A., Cerone, A. (eds.) ICTAC 2006. LNCS, vol. 4281, pp. 183–197. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  24. 24.
    Malkis, A., Podelski, A., Rybalchenko, A.: Precise thread-modular verification. In: Nielson and Filé [26], pp. 218–232Google Scholar
  25. 25.
    Mueller, F.: Implementing POSIX threads under UNIX: Description of work in progress. In: Proceedings of the 2nd Software Engineering Research Forum, Melbourne, Florida (November 1992)Google Scholar
  26. 26.
    Nielson, H.R., Filé, G. (eds.): SAS 2007. LNCS, vol. 4634. Springer, Heidelberg (2007)zbMATHGoogle Scholar
  27. 27.
    Owicki, S.S.: Axiomatic Proof Techniques For Parallel Programs. PhD thesis, Cornell University, Department of Computer Science, TR 75-251 (July 1975)Google Scholar
  28. 28.
    Owicki, S.S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Inf. 6, 319–340 (1976)zbMATHCrossRefMathSciNetGoogle Scholar
  29. 29.
    Qadeer, S., Rehof, J.: Context-bounded model checking of concurrent software. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 93–107. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  30. 30.
    Qadeer, S., Wu, D.: Kiss: keep it simple and sequential. In: PLDI 2004, pp. 14–24. ACM, New York (2004)CrossRefGoogle Scholar
  31. 31.
    Giacobazzi, F.S.R., Ranzato, F.: Making abstract interpretations complete. JACM (2000)Google Scholar
  32. 32.
    Ranzato, F., Rossi-Doria, O., Tapparo, F.: A forward-backward abstraction refinement algorithm. In: Logozzo, F., Peled, D., Zuck, L. D. (eds.) VMCAI 2008. LNCS, vol. 4905, pp. 248–262. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  33. 33.
    Ranzato, F., Tapparo, F.: Generalized strong preservation by abstract interpretation. J. Log. Comput. 17(1), 157–197 (2007)zbMATHCrossRefMathSciNetGoogle Scholar
  34. 34.
    Shankar, A.U.: Peterson’s mutual exclusion algorithm (2003),
  35. 35.
    Vineet Kahlon, F.I., Gupta, A.: Reasoning about threads communicating via locks. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 505–518. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Alexander Malkis
    • 1
  • Andreas Podelski
    • 1
  • Andrey Rybalchenko
    • 2
  1. 1.University of Freiburg 
  2. 2.TU München 

Personalised recommendations