Skip to main content

Thread-Modular Counterexample-Guided Abstraction Refinement

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNPSE,volume 6337)

Abstract

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.

Keywords

  • 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.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-642-15769-1_22
  • Chapter length: 17 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   84.99
Price excludes VAT (USA)
  • ISBN: 978-3-642-15769-1
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   109.00
Price excludes VAT (USA)

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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)

    MATH  CrossRef  MathSciNet  Google Scholar 

  2. Bradford Nichols, J.P.F., Buttlar, D.: Pthreads programming. O’Reilly & Associates, Inc, Sebastopol (1996)

    Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  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. Cousot, P., Ganty, P., Raskin, J.-F.: Fixpoint-guided abstraction refinements. In: Nielson and Filé [26], pp. 333–348

    Google Scholar 

  8. de Roever, W.-P.: A compositional approach to concurrency and its applications. Manuscript (2003)

    Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    MATH  CrossRef  MathSciNet  Google Scholar 

  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)

    CrossRef  Google Scholar 

  12. Ganty, P.: The Fixpoint Checking Problem: An Abstraction Renement Perspective. PhD thesis, Université Libre de Bruxelles (2007)

    Google Scholar 

  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)

    CrossRef  Google Scholar 

  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)

    CrossRef  Google Scholar 

  15. Holzmann, G.: The Spin model checker: Primer and reference manual. Addison-Wesley, Reading ISBN 0-321-22862-6, http://www.spinroot.com

  16. Jones, C.B.: Tentative steps toward a development method for interfering programs. ACM Trans. Program. Lang. Syst. 5(4), 596–619 (1983)

    MATH  CrossRef  Google Scholar 

  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. 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)

    CrossRef  Google Scholar 

  19. Leroy, X.: Pthreads linux manual pages, http://www.digipedia.pl/man/pthread_mutex_init.3thr.html

  20. Malkis, A.: Cartesian Abstraction and Verification of Multithreaded Programs. PhD thesis, Albert-Ludwigs-Universität Freiburg (2010)

    Google Scholar 

  21. Malkis, A., Podelski, A.: Refinement with exceptions. Technical report (2008), http://www.informatik.uni-freiburg.de/~alexmalk/refinementWithExceptions_techrep.pdf

  22. Malkis, A., Podelski, A., Rybalchenko, A.: Thread-modular verification and Cartesian abstraction. In: Presentation at TV 2006 (2006)

    Google Scholar 

  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)

    CrossRef  Google Scholar 

  24. Malkis, A., Podelski, A., Rybalchenko, A.: Precise thread-modular verification. In: Nielson and Filé [26], pp. 218–232

    Google Scholar 

  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. Nielson, H.R., Filé, G. (eds.): SAS 2007. LNCS, vol. 4634. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  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. Owicki, S.S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Inf. 6, 319–340 (1976)

    MATH  CrossRef  MathSciNet  Google Scholar 

  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)

    CrossRef  Google Scholar 

  30. Qadeer, S., Wu, D.: Kiss: keep it simple and sequential. In: PLDI 2004, pp. 14–24. ACM, New York (2004)

    CrossRef  Google Scholar 

  31. Giacobazzi, F.S.R., Ranzato, F.: Making abstract interpretations complete. JACM (2000)

    Google Scholar 

  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)

    CrossRef  Google Scholar 

  33. Ranzato, F., Tapparo, F.: Generalized strong preservation by abstract interpretation. J. Log. Comput. 17(1), 157–197 (2007)

    MATH  CrossRef  MathSciNet  Google Scholar 

  34. Shankar, A.U.: Peterson’s mutual exclusion algorithm (2003), http://www.cs.umd.edu/~shankar/712-S03/mutex-peterson.ps

  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)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Malkis, A., Podelski, A., Rybalchenko, A. (2010). Thread-Modular Counterexample-Guided Abstraction Refinement. In: Cousot, R., Martel, M. (eds) Static Analysis. SAS 2010. Lecture Notes in Computer Science, vol 6337. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15769-1_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-15769-1_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-15768-4

  • Online ISBN: 978-3-642-15769-1

  • eBook Packages: Computer ScienceComputer Science (R0)