Abstract
Automated verification of programs is a topic of increasing interest [1],[2],[3],[4],[5],[6], [7],[8],[9],[10],[11],[12],[13]. In a recent approach known as software model checking, one tries to prove a safety property of a program by iterating three steps: (1) the construction of an abstract system for an abstraction given by predicates over sets of states, (2) the model checking (in fact, a reachability analysis) of the abstract system, and (3) the refinement of the abstraction. The third step is done by generating additional predicates from the spurious counterexamples of the abstract system, if there are any; if not, the program property is either proven or disproven, and the method terminates.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
T. Ball, A. Podelski, and S. K. Rajamani. Boolean and Cartesian abstraction for model checking C programs. In T. Margaria and W. Yi, editors, Tools and Algorithms for the Construction and Analysis of Systems, 7th International Conference, TACAS 2001, Genova, Italy, April 2-6, 2001, Proceedings, volume 2031 of LNCS, pages 268–283. Springer-Verlag, 2001.
T. Ball, A. Podelski, and S. K. Rajamani. Relative completeness of abstraction refinement for software model checking. In J.-P. Kaoen and P. Stevens, editors, Tools and Algorithms for the Construction and Analysis of Systems, 8th International Conference, TACAS 2002, Grenoble, France, April 8–12, 2002, Proceedings, volume 2280 of LNCS, pages 158–172. Springer-Verlag, 2002.
P. Cousot. Partial completeness of abstract fixpoint checking. In B. Y. Choueiry and T. Walsh, editors,Abstraction, Reformulation, and Approximation, 4th International Symposium, SARA 2000,Horseshoe Bay, Texas, USA, July 26–29, 2000, Proceedings, volume 1864of LNCS, pages 1–15. Springer, 2000.
P. Cousot and R. Cousot. On abstraction in software verification. In E. Brinksma and K. G. Larsen, editors, Computer Aided Verification, 14th International Conference, CAV 2002, Copenhagen, Denmark, July 27–31, 2002, Proceedings, volume 2404 of LNCS, pages 37–56. Springer, 2002.
R. Giacobazzi, F. Ranzato, and F. Scozzari. Making abstract interpretations complete. Journal of the ACM (JACM), 47(2):361–416, 2000.
J. Hatcli. and M. B. Dwyer. Using the Bandera tool set to model-check properties of concurrent Java software. In K. G. Larsen and M. Nielsen, editors, onCONCUR 2001-Concurrency Theory, 12th International Conference, Aalborg, Denmark, August 20–25, 2001, Proceedings, volume 2154 of LNCS, pages 39–58. Springer,2001.
T. A. Henzinger, R. Jhala, R. Majumdar, G. C. Necula, G. Sutre, and W. Weimer. Temporal-safety proofs for systems code. In E. Brinksma and K. G. Larsen, editors, Computer Aided Verification, 14th International Conference, CAV 2002, Copenhagen, Denmark, July 27–31, 2002, Proceedings, volume 2404 of LNCS, pages 526–538. Springer, 2002.
G. J. Holzmann. Software analysis and model checking. In E. Brinksma and K. G. Larsen, editors, Computer Aided Verification, 14th International Conference, CAV 2002, Copenhagen, Denmark, July 27–31, 2002, Proceedings, volume 2404 of LNCS, pages 1–16. Springer, 2002.
Y. Lakhnech, S. Bensalem, S. Berezin, and S. Owre. Incremental verification by abstraction. In T. Margaria and W. Yi, editors, Tools and Algorithms for the Construction and Analysis of Systems, 7th International Conference, TACAS 2001, Genova, Italy, April 2–6, 2001, Proceedings, volume 2031 of LNCS, pages 98–112. Springer-Verlag, 2001.
A. Podelski. Model checking as constraint solving. In J. Palsberg, editor, Static Analysis, 7th International Symposium, SAS 2000, Santa Barbara, CA, USA, June 29–July 1, 2000, Proceedings, volume 1824 of LNCS, pages 22–37. Springer-Verlag, 2000.
G. Ramalingam, A. Warshavsky, J. Field, D. Goyal, and M. Sagiv. Deriving specialized program analyses for certifying component-client conformance. In Proceeding of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, pages 83–94. ACM Press, 2002.
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Transactions on Programming Languages and Systems (TOPLAS), 24(3):217–298, 2002.
E. Yahav. Verifying safety properties of concurrent Java programs using 3-valued logic. In H. R. Nielsen, editor, Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 27–40. ACM Press, 2001.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Podelski, A. (2003). Software Model Checking with Abstraction Refinement. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2003. Lecture Notes in Computer Science, vol 2575. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36384-X_1
Download citation
DOI: https://doi.org/10.1007/3-540-36384-X_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00348-9
Online ISBN: 978-3-540-36384-2
eBook Packages: Springer Book Archive