Skip to main content

A CLP Method for Compositional and Intermittent Predicate Abstraction

  • Conference paper
Verification, Model Checking, and Abstract Interpretation (VMCAI 2006)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3855))

Abstract

We present an implementation of symbolic reachability analysis with the features of compositionality, and intermittent abstraction, in the sense of pefrorming approximation only at selected program points, if at all. The key advantages of compositionality are well known, while those of intermittent abstraction are that the abstract domain required to ensure convergence of the algorithm can be minimized, and that the cost of performing abstractions, now being intermittent, is reduced.

We start by formulating the problem in CLP, and first obtain compositionality. We then address two key efficiency challenges. The first is that reasoning is required about the strongest-postcondition operator associated with an arbitrarily long program fragment. This essentially means dealing with constraints over an unbounded number of variables describing the states between the start and end of the program fragment at hand. This is addressed by using the variable elimination or projection mechanism that is implicit in CLP systems. The second challenge is termination, that is, to determine which subgoals are redundant. We address this by a novel formulation of memoization called coinductive tabling.

We finally evaluate the method experimentally. At one extreme, where abstraction is performed at every step, we compare against a model checker. At the other extreme, where no abstraction is performed, we compare against a program verifier. Of course, our method provides for the middle ground, with a flexible combination of abstraction and Hoare-style reasoning with predicate transformers and loop-invariants.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of C programs. In: 15th PLDI, May 2001. SIGPLAN Notices, vol. 36(5), pp. 203–213 (2001)

    Google Scholar 

  2. Ball, T., Millstein, T., Rajamani, S.K.: Polymorphic predicate abstraction. ACM Transactions on Programming Languages and Systems 27(2), 314–343 (2005)

    Article  Google Scholar 

  3. Barras, B., Boutin, S., Cornes, C., Courant, J., Filliatre, J., Giménez, E., Herbelin, H., Huet, G., Noz, C.M., Murthy, C., Parent, C., Paulin, C., Saïbi, A., Werner, B.: The Coq proof assistant reference manual—version v6.1. Technical Report 0203, INRIA (1997)

    Google Scholar 

  4. Bossi, A. (ed.): LOPSTR 1999. LNCS, vol. 1817. Springer, Heidelberg (2000)

    MATH  Google Scholar 

  5. Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular verification of software components in C. IEEE Transactions on Software Engineering 30(6), 388–402 (2004)

    Article  Google Scholar 

  6. Cok, D.R., Kiniry, J.: ESC/Java2: Uniting ESC/Java and JML. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 108–128. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  7. Cousot, P., Cousot, R.: Comparing the Galois connection and widening/narrowing approaches to abstract interpretation. In: Bruynooghe, M., Wirsing, M. (eds.) PLILP 1992. LNCS, vol. 631. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  8. Das, S., Dill, D.L., Park, S.: Experience with predicate abstraction. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 160–171. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  9. Delzanno, G., Podelski, A.: Model checking in CLP. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 223–239. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  10. Du, X., Ramakrishnan, C.R., Smolka, S.A.: Tabled resolution + constraints: A recipe for model checking real-time systems. In: 21st RTSS. IEEE Computer Society Press, Los Alamitos (2000)

    Google Scholar 

  11. Burdy, L., et al.: Java applet correctness: A developer-oriented approach. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805. Springer, Heidelberg (2003)

    Google Scholar 

  12. Ramakrishna, Y.S., et al.: Efficient model checking using tabled resolution. In: Grumberg [16]

    Google Scholar 

  13. Fioravanti, F., Pettorossi, A., Proietti, M.: Verifying CTL properties of infinite-state systems by specializing constraint logic programs. In: Leuschel, M., Podelski, A., Ramakrishnan, C.R., Ultes-Nitsche, U. (eds.) 2nd VCL, pp. 85–96 (2001)

    Google Scholar 

  14. Fribourg, L.: Constraint logic programming applied to model checking. In: Bossi [4], pp. 30–41

    Google Scholar 

  15. Graf, S., Saïdi, H.: Construction of abstract state graphs of infinite systems with PVS. In: Grumberg [16], pp. 72–83

    Google Scholar 

  16. Grumberg, O. (ed.): CAV 1997. LNCS, vol. 1254. Springer, Heidelberg (1997)

    Google Scholar 

  17. Gupta, G., Pontelli, E.: A constraint-based approach for specification and verification of real-time systems. In: 18th RTSS, pp. 230–239. IEEE Computer Society Press, Los Alamitos (1997)

    Google Scholar 

  18. Harrison, J.: HOL light: A tutorial introduction. In: Srivas, M., Camilleri, A. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 265–269. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  19. Henzinger, T.A., Jhala, R., Majumdar, R.: Lazy abstraction. In: 29th POPL. SIGPLAN Notices, vol. 37(1), pp. 58–70. ACM Press, New York (2002)

    Google Scholar 

  20. Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Add.-Wesley, Reading (2003)

    Google Scholar 

  21. Jaffar, J., Maher, M., Stuckey, P., Yap, R.: Projecting CLP(\(\cal R\)) constraints. In: New Generation Computing, vol. 11, pp. 449–469. Ohmsha and Springer, Heidelberg (1993)

    Google Scholar 

  22. Jaffar, J., Michaylov, S., Stuckey, P.J., Yap, R.H.C.: The CLP(\(\cal R\)) language and system. ACM TOPLAS 14(3), 339–395 (1992)

    Article  Google Scholar 

  23. Leuschel, M., Massart, T.: Infinite-state model checking by abstract interpretation and program specialization. In: Bossi [4]

    Google Scholar 

  24. Marché, C., Paulin-Mohring, C., Urbain, X.: The KRAKATOA tool for certification of JAVA/JAVACARD programs annotated in JML. J. Log. and Alg. Prog. 58(1–2), 89–106 (2004)

    Article  MATH  Google Scholar 

  25. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (1999)

    MATH  Google Scholar 

  26. Nilsson, U., Lübcke, J.: Constraint logic programming for local and symbolic model checking. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 384–398. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  27. Owre, S., Shankar, N., Rushby, J.: PVS: A prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jaffar, J., Santosa, A.E., Voicu, R. (2005). A CLP Method for Compositional and Intermittent Predicate Abstraction. In: Emerson, E.A., Namjoshi, K.S. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2006. Lecture Notes in Computer Science, vol 3855. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11609773_2

Download citation

  • DOI: https://doi.org/10.1007/11609773_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-31139-3

  • Online ISBN: 978-3-540-31622-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics