Skip to main content

Incompleteness, Counterexamples, and Refinements in Abstract Model-Checking

  • Conference paper
  • First Online:
Static Analysis (SAS 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2126))

Included in the following conference series:

Abstract

In this paper we study the relation between the lack of completeness in abstract interpretation of model-checking and the structure of the counterexamples produced by a model-checker. We consider two dual forms of completeness of an abstract interpretation: Forward and backward completeness. They correspond respectively to the standard γ/α completeness of an abstract interpretation and can be related with each other by adjunction. We give a constructive characterization of Clarke et al.’s spurious counterexamples in terms of both forward and backward completeness of the underlying abstract interpretation. This result allows us to understand the structure of the counterexamples that can be removed by systematically refining abstract domains to achieve completeness with respect to a given operation. We apply our result to improve static program analysis by refining the model-checking of an abstract interpretation.

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. E. M. Clarke, E. A. Emerson, and A. P. Sistla. Automatic verification of finite-state concurrent system using temporal logic specification. ACM Trans. Program. Lang. Syst., 8(2):244–263, 1986.

    Article  MATH  Google Scholar 

  2. E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In Proc. of the 12th Internat. Conf. on Computer Aided Verification (CAV’ 00), volume 1855 of Lecture Notes in Computer Science, pages 154–169. Springer-Verlag, Berlin, 2000.

    Chapter  Google Scholar 

  3. E. M. Clarke, O. Grumberg, and D. E. Long. Model checking and abstraction. ACM Trans. Program. Lang. Syst., 16(5):1512–1542, 1994.

    Article  Google Scholar 

  4. P. Cousot. Types as abstract interpretations (Invited Paper). In Conference Record of the 24th ACM Symp. on Principles of Programming Languages (POPL’ 97), pages 316–331. ACM Press, New York, 1997.

    Chapter  Google Scholar 

  5. P. Cousot. Partial completeness of abstract fixpoint checking, invited paper. In Proceedings of the Fourth International Symposium on Abstraction, Reformulations and Approximation, SARA’2000, Lecture Notes in Artificial Intelligence 1864, pages 1–25, Horseshoe Bay, Texas, USA, 26–29 July 2000. Springer-Verlag, Berlin, Germany.

    Chapter  Google Scholar 

  6. P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the 4th ACM Symp. on Principles of Programming Languages (POPL’ 77), pages 238–252. ACM Press, New York, 1977.

    Chapter  Google Scholar 

  7. P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Conference Record of the 6th ACM Symp. on Principles of Programming Languages (POPL’79), pages 269–282. ACM Press, New York, 1979.

    Google Scholar 

  8. P. Cousot and R. Cousot. Refining model checking by abstract interpretation. Automated Software Engineering, 6(1):69–95, 1999.

    Article  Google Scholar 

  9. P. Cousot and R. Cousot. Temporal abstract interpretation. In Conference Record of the Twentyseventh Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 12–25, Boston, Mass., January 2000. ACM Press, New York,NY.

    Google Scholar 

  10. D. Dams, R. Gerth, and O. Grumberg. Abstract interpretation of reactive systems. ACM Trans. Program. Lang. Syst., 19(2):253–291, 1997.

    Article  Google Scholar 

  11. E. A. Emerson. Temporal and modal logic. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics. Elsevier, Amsterdam and The MIT Press, Cambridge, Mass., 1990.

    Google Scholar 

  12. G. Filé, R. Giacobazzi, and F. Ranzato. A unifying view of abstract domain design. A CM Comput. Surv., 28(2):333–336, 1996.

    Article  Google Scholar 

  13. R. Giacobazzi and F. Ranzato. Refining and compressing abstract domains. In P. Degano, R. Gorrieri, and A. Marchetti-Spaccamela, editors, Proc. of the 24th Internat. Colloq. on Automata, Languages and Programming (ICALP’ 97), volume 1256 of Lecture Notes in Computer Science, pages 771–781. Springer-Verlag, Berlin, 1997.

    Google Scholar 

  14. R. Giacobazzi, F. Ranzato, and F. Scozzari. Making abstract interpretation complete. Journal of the ACM, 47(2):361–416, March 2000.

    Google Scholar 

  15. C. Loiseaux, S. Graf, J. Sifakis, A. Bouajjani, and S. Bensalem. Property preserving abstractions for the verification of concurrent systems. Formal Methods Syst. Des., 6:1–36, 1995.

    Article  Google Scholar 

  16. Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag, Berlin, 1992.

    Google Scholar 

  17. M. Müller-Olm, D. Schmidt, and B. Steffen. Model-checking. A tutorial introduction. In G. Filé, editor, Proceedings of the International Static Analysis Symposium (SAS’ 99), volume 1694 of Lecture Notes in Computer Science, pages 330–354. Springer-Verlag, Berlin, 1999.

    Google Scholar 

  18. A. Mycroft. Completeness and predicate-based abstract interpretation. In Proc. of the ACM Symp. on Partial Evaluation and Program Manipulation (PEPM’ 93), pages 179–185. ACM Press, New York, 1993.

    Chapter  Google Scholar 

  19. F. Ranzato. On the completeness of model checking. In Proc. of European Symposium on Programming (ESOP’ 01), Lecture Notes in Computer Science. Springer-Verlag, Berlin, 2001.

    Google Scholar 

  20. D. A. Schmidt. Data flow analysis is model checking of abstract interpretation. In Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL’ 98), pages 38–48. ACM Press, New York, 1998.

    Chapter  Google Scholar 

  21. D. A. Schmidt. Trace-based abstract interpretation of operational semantics. Lisp and Symbolic Computation, 10(3):237–271, 1998.

    Article  Google Scholar 

  22. B. Steffen. Data flow analysis as model checking. In A. Meyer, editor, Proc. of Theoretical aspects of computer software (TACS’ 91), volume 526 of Lecture Notes in Computer Science, pages 346–364. Springer-Verlag, Berlin, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Giacobazzi, R., Quintarelli, E. (2001). Incompleteness, Counterexamples, and Refinements in Abstract Model-Checking. In: Cousot, P. (eds) Static Analysis. SAS 2001. Lecture Notes in Computer Science, vol 2126. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47764-0_20

Download citation

  • DOI: https://doi.org/10.1007/3-540-47764-0_20

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42314-0

  • Online ISBN: 978-3-540-47764-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics