Thread-Modular Verification Is Cartesian Abstract Interpretation

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


Verification of multithreaded programs is difficult. It requires reasoning about state spaces that grow exponentially in the number of concurrent threads. Successful verification techniques based on modular composition of over-approximations of thread behaviors have been designed for this task. These techniques have been traditionally described in assume-guarantee style, which does not admit reasoning about the abstraction properties of the involved compositional argument. Flanagan and Qadeer thread-modular algorithm is a characteristic representative of such techniques. In this paper, we investigate the formalization of this algorithm in the framework of abstract interpretation. We identify the abstraction that the algorithm implements; its definition involves Cartesian products of sets. Our result provides a basis for the systematic study of similar abstractions for dealing with the state explosion problem. As a first step in this direction, our result provides a characterization of a minimal increase in the precision of the Flanagan and Qadeer algorithm that leads to the loss of its polynomial complexity.


Inference Rule Abstract Interpretation Abstract Domain Galois Connection Multithreaded Program 
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.
    Birkhoff, G.: Lattice Theory, 3rd edn. Amer. Math. Soc., Providence (1967)MATHGoogle Scholar
  2. 2.
    Blanchet, B.: Introduction to Abstract Interpretation, lecture script (2002),
  3. 3.
    Cousot, P., Cousot, R.: Constructive versions of Tarski’s fixed point theorems. Pacific Journal of Mathematics 82(1) (1979)Google Scholar
  4. 4.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: 6th annual ACM symposium on principles of program languages (1979)Google Scholar
  5. 5.
    Cousot, P.: Partial Completeness of Abstract Fixpoint Checking. In: Choueiry, B.Y., Walsh, T. (eds.) SARA 2000. LNCS (LNAI), vol. 1864, pp. 1–25. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  6. 6.
    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
  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.
    Holzmann, G.J.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)CrossRefMathSciNetGoogle Scholar
  9. 9.
    Kozen, D.: Lower Bounds for Natural Proof Systems. In: FOCS 1977, pp. 261–262 (1977)Google Scholar
  10. 10.
    Muchnik, S.S., Jones, N.D.: Program Flow Analysis: Theory and Applications. Prentice-Hall, Inc., Englewood Cliffs, 07632Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Alexander Malkis
    • 1
  • Andreas Podelski
    • 1
    • 2
  • Andrey Rybalchenko
    • 1
    • 3
  1. 1.Max-Planck Institut für InformatikSaarbrücken
  2. 2.Albert-Ludwigs-Universität Freiburg 
  3. 3.EPFL IC IIF MTCLausanne

Personalised recommendations