[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/3155562.3155589guideproceedingsArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article
Free access

More effective interpolations in software model checking

Published: 30 October 2017 Publication History

Abstract

An approach to CEGAR-based model checking which has proved to be successful on large models employs Craig interpolation to efficiently construct parsimonious abstractions. Following this design, we introduce new applications, universal safety interpolant and existential error interpolant, of Craig interpolation that can systematically reduce the program state space to be explored for safety verification. Whenever the universal safety interpolant is implied by the current path, all paths emanating from that location are guaranteed to be safe. Dually whenever the existential error interpolant is implied by the current path, there is guaranteed to be an unsafe path from the location. We show how these interpolants are computed and applied in safety verification. We have implemented our approach in a tool named InterpChecker by building on an open source software model checker. Experiments on a large number of benchmark programs show that both the interpolations and the auxiliary optimization strategies are effective in improving scalability of software model checking.

References

[1]
Ranjit Jhala and Rupak Majumdar. Software model checking. ACM Computing Surveys, 41(4): 21, 2009.
[2]
Edmund M Clarke, Orna Grumberg, and David E Long. Model checking and abstraction. ACM transactions on Programming Languages and Systems (TOPLAS), 16(5): 1512-1542, 1994.
[3]
Edmund M Clarke, William Klieber, Miloˇs Nováˇcek, and Paolo Zuliani. Model checking and the state explosion problem. In LASER Summer School on Software Engineering, pages 1-30. Springer, 2011.
[4]
E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, H. Veith, Counterexampleguided abstraction refinement for symbolic model checking, J. ACM, vol. 50, no. 5, pp. 752-794, 2003.
[5]
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Gregoire Sutre. Software Verification with Blast. Proceedings of the 10th SPIN Workshop on Model Checking Software (SPIN), LNCS 2648, Springer-Verlag, pages 235-239, 2003.
[6]
T. Ball and S.K. Rajamani. The SLAM project: debugging system software via static analysis. In POPL 02: Principles of Programming Languages, pages 1-3. ACM, 2002.
[7]
Cong Tian, Zhenhua Duan, and Zhao Duan. Making CEGAR More Efficient in Software Model Checking. In IEEE Transactions on Software Engineering (TSE), Vol 40(12), 1206-1223, Dec 2014.
[8]
Cong Tian and Zhenhua Duan. Detecting Spurious Counterexamples Efficiently in Abstract Model Checking. In the 35th International Conference on Software Engineering (ICSE 2013), 202-211, 2013.
[9]
Dirk Beyer and Philipp Wendler. Algorithms for software model checking: Predicate abstraction vs. impact. In Formal Methods in Computer-Aided Design (FMCAD), 2012, pages 106-113, IEEE, 2012.
[10]
William Craig. Linear reasoning. a new form of the Herbrand-Gentzen theorem. The Journal of Symbolic Logic, 22(03): 250-268, 1957.
[11]
Kenneth L McMillan. Lazy abstraction with interpolants. In International Conference on Computer Aided Verification, pages 123-136, Springer, 2006.
[12]
Dirk Beyer, Alessandro Cimatti, Alberto Griggio, M Erkan Keremoglu, and Roberto Sebastiani. Software model checking via large-block encoding. In Formal Methods in Computer-Aided Design, 2009. FMCAD 2009, pages 25-32, IEEE, 2009.
[13]
Dirk Beyer, M Erkan Keremoglu, and Philipp Wendler. Predicate abstraction with adjustable-block encoding. In Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design, pages 189- 198, FMCAD Inc, 2010.
[14]
Kenneth L McMillan. Interpolation and SAT-based model checking. In International Conference on Computer Aided Verification, pages 1-13, Springer, 2003.
[15]
Yakir Vizel and Orna Grumberg. Interpolation-sequence based model checking. In Formal Methods in Computer-Aided Design, 2009. FMCAD 2009, pages 1-8, IEEE, 2009.
[16]
Dirk Beyer and Stefan Löwe. Explicit-state software model checking based on CEGAR and interpolation. In International Conference on Fundamental Approaches to Software Engineering, pages 146-162, Springer, 2013.
[17]
Klaus von Gleissenthall, Boris Köpf, and Andrey Rybalchenko. Symbolic polytopes for quantitative interpolation and verification. In International Conference on Computer Aided Verification, pages 178-194, Springer, 2015.
[18]
Gianpiero Cabodi, Carmelo Loiacono, and Danilo Vendraminetto. Optimization techniques for Craig interpolant compaction in unbounded model checking. Formal Methods in System Design, 46(2):135–162, 2015.
[19]
Angelo Brillout, Daniel Kroening, Philipp Rümmer, Thomas Wahl. Program verification via Craig interpolation for Presburger arithmetic with arrays. In VERIFY@ IJCAR, pages 31-46, 2010.
[20]
Aws Albarghouthi, Arie Gurfinkel, and Marsha Chechik. Whale: An interpolation-based algorithm for inter-procedural verification. In International Workshop on Verification, Model Checking, and Abstract Interpretation, pages 39-55, Springer, 2012.
[21]
Joxan Jaffar, Vijayaraghavan Murali, and Jorge A Navas. Boosting concolic testing via interpolation. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pages 48-58, ACM, 2013.
[22]
Kenneth L McMillan. Lazy annotation for program testing and verification. In International Conference on Computer Aided Verification, pages 104-118, Springer, 2010.
[23]
Duc-Hiep Chu and Joxan Jaffar. A framework to synergize partial order reduction with state interpolation. In Haifa Verification Conference, pages 171-187, Springer, 2014.
[24]
Björn Wachter, Daniel Kroening, and Joel Ouaknine. Verifying multithreaded software with impact. In FMCAD, pages 210–217, 2013.
[25]
T. A. Henzinger, R. Jhala, R. Majumdar, and K. L. McMillan. Abstractions from proofs. In Proc. POPL, 2004, pp. 232-244.
[26]
Dirk Beyer. Software verification and verifiable witnesses (Report on SV-COMP 2015). In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 401-416, Springer, 2015.
[27]
Dirk Beyer. Reliable and reproducible competition results with benchexec and witnesses (report on sv-comp 2016). In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 887-904, Springer, 2016.
[28]
Thomas A Henzinger, Ranjit Jhala, Rupak Majumdar, and Grégoire Sutre. Lazy abstraction. In In POPL, pages 58-70, ACM, 2002.
[29]
Dirk Beyer, Georg Dresler, and Philipp Wendler. Software verification in the google app-engine cloud. In International Conference on Computer Aided Verification, pages 327-333, Springer, 2014.
[30]
Bugs found in linux kernel with CPAChekcer: https://cpachecker.sosylab.org/achieve.php
[31]
Emanuel Kolb, Ondˇrej ˇSer`y, and Roland Weiss. Applicability of the blast model checker: An industrial case study. In International Andrei Ershov Memorial Conference on Perspectives of System Informatics, pages 218– 229, Springer, 2009.
[32]
Dirk Beyer. Competition on software verification. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 504–524. Springer, 2012.
[33]
Evren Ermis, Martin Schäf, and Thomas Wies. Error invariants. In International Symposium on Formal Methods, pages 187–201. Springer, 2012.
[34]
Yakir Vizel, Orna Grumberg, and Sharon Shoham. Intertwined forwardbackward reachability analysis using interpolants. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 308–323. Springer, 2013.
[35]
David Gries. The science of programming. Springer Science & Business Media, 2012.
[36]
Arvind Haran, Montgomery Carter, Michael Emmi, Akash Lal, Shaz Qadeer, and Zvonimir Rakamari´c. Smack+ corral: A modular verifier. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 451–454. Springer, 2015.
[37]
Gérard Basler, Alastair Donaldson, Alexander Kaiser, Daniel Kroening, Michael Tautschnig, and Thomas Wahl. Satabs: a bit-precise verifier for c programs. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 552–555. Springer, 2012.
[38]
Dirk Beyer, Stefan Löwe, and Philipp Wendler. Refinement selection. In Model Checking Software, pages 20–38. Springer, 2015.
[39]
Daniel Wonisch. Block abstraction memoization for cpachecker. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 531–533. Springer, 2012.

Cited By

View all
  • (2021)Conditional interpolation: making concurrent program verification more effectiveProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468602(144-154)Online publication date: 20-Aug-2021

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
ASE '17: Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering
October 2017
1033 pages
ISBN:9781538626849

Sponsors

Publisher

IEEE Press

Publication History

Published: 30 October 2017

Author Tags

  1. CEGAR
  2. Model checking
  3. interpolation
  4. program verification

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)60
  • Downloads (Last 6 weeks)7
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Conditional interpolation: making concurrent program verification more effectiveProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468602(144-154)Online publication date: 20-Aug-2021

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media