Abstract
Craig interpolation has been successfully employed in symbolic program verification as a means of abstraction for sets of program states. In this article, we present the partial variable assignment interpolation system, an extension of the labeled interpolation system, enriched by partial variable assignments. It allows for both generation of smaller interpolants as well as for their faster computation. We present proofs of important properties of the interpolation system as well as a set of experiments proving its usefulness.
Similar content being viewed by others
Notes
Our intuition leads us to the conclusion that the path interpolation property cannot be guaranteed in a general case of different assignments, but we have no counterexample demonstrating it.
Note that the implementation of PVAIR does not involve any parallel computation—this is planned as future work.
References
Albarghouthi A, Gurfinkel A, Chechik M (2012) From under-approximations to over-approximations and back. In: Flanagan C, König B (eds) Tools and algorithms for the construction and analysis of systems—18th international conference, TACAS 2012, held as part of the European joint conferences on theory and practice of software, ETAPS 2012, Tallinn, Estonia, Mar 24–Apr 1, 2012. Proceedings, volume 7214 of Lecture notes in computer science. Springer, pp 157–172
Albarghouthi A, Gurfinkel A, Chechik M (2012) Whale: an interpolation-based algorithm for inter-procedural verification. In: Kuncak V, Rybalchenko A (eds) Verification, model checking, and abstract interpretation—13th international conference, VMCAI 2012, Philadelphia, PA, USA, 22–24 Jan 2012. Proceedings, volume 7148 of Lecture notes in computer science. Springer, pp 39–55
Albarghouthi A, Li Y, Gurfinkel A, Chechik M (2012) UFO: a framework for abstraction- and interpolation-based software verification. In: Madhusudan P and Seshia SA (Eds) Computer aided verification—24th international conference, CAV 2012, Berkeley, CA, USA, 7–13 July 2012, proceedings, volume 7358 of Lecture notes in computer science. Springer, pp 672–678
Barrett C, Stump A, Tinelli C (2010) The SMT-LIB standard: version 2.0. Technical report, Department of Computer Science, The University of Iowa. http://www.SMT-LIB.org
Cabodi G, Loiacono C, Vendraminetto D (2013) Optimization techniques for Craig interpolant compaction in unbounded model checking. In: Enrico M (ed) Design. Automation and test in Europe, DATE 13, Grenoble, France, 18–22 Mar 2013. EDA Consortium San Jose, CA, USA/ACM DL, pp 1417–1422
Craig W (1957) Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory. J Symb Log 22(3):269–285
D’Silva V, Kroening D, Purandare M, Weissenbacher G (2010) Interpolant strength. In: Barthe G, Hermenegildo MV (eds) Verification, model checking, and abstract interpretation, 11th international conference, VMCAI 2010, Madrid, Spain, 17–19 Jan 2010. Proceedings, volume 5944 of Lecture notes in computer science. Springer, pp 129–145
Eén N, Biere A (2005) Effective preprocessing in SAT through variable and clause elimination. In: Bacchus F, Walsh T (eds) Theory and applications of satisfiability testing, 8th international conference, SAT 2005, St. Andrews, UK, 19–23 June 2005. Proceedings, volume 3569 of Lecture notes in computer science. Springer, pp 61–75
Fedyukovich G, Sery O, Sharygina N (2013) eVolCheck: incremental upgrade checker for C. In: Piterman N, Smolka SA (eds) Tools and algorithms for the construction and analysis of systems—19th international conference, TACAS 2013, held as part of the European joint conferences on theory and practice of software, ETAPS 2013, Rome, Italy, 16–24 Mar 2013. Proceedings, volume 7795 of Lecture notes in computer science. Springer, pp 292–307
Gurfinkel A, Rollini SF, Sharygina N (2013) Interpolation properties and SAT-based model checking. In: Van Hung D, Ogawa M (eds) Automated technology for verification and analysis—11th international symposium, ATVA 2013, Hanoi, Vietnam, 15–18 Oct 2013. Proceedings, volume 8172 of Lecture notes in computer science. Springer, pp 255–271
Hyvärinen AEJ, Marescotti M, Alt L, Sharygina N (2016) OpenSMT2: an SMT solver for multi-core and cloud computing. In: Creignou N, Le Berre D (eds) Theory and applications of satisfiability testing—SAT 2016: 19th international conference, Bordeaux, France, 5–8 July 2016, Proceedings. Springer, Cham, pp 547–553
Jančík P, Alt L, Fedyukovich G, Hyvärinen AEJ, Kofroň J, Sharygina N (2016) PVAIR: Partial Variable Assignment InterpolatoR. In: Fundamental approaches to software engineering (FASE) 2016, LNCS 9633. Springer, Berlin, Heidelberg, pp 419–434
Jančík P, Kofroň J, Rollini SF, Sharygina N (2014) On interpolants and variable assignments. In: Formal methods in computer-aided design, FMCAD 2014, Lausanne, Switzerland, 21–24 Oct 2014. IEEE, pp 123–130
Madhusudan P, Seshia SA (eds) (2012) Computer aided verification—24th international conference, CAV 2012, Berkeley, CA, USA, 7–13 July 2012. Proceedings, volume 7358 of Lecture notes in computer science. Springer
McMillan KL (2003) Interpolation and SAT-based model checking. In: Hunt WA Jr, Somenzi F (eds) Computer aided verification, 15th international conference, CAV 2003, Boulder, CO, USA, 8–12 July 2003, proceedings, volume 2725 of Lecture notes in computer science. Springer, pp 1–13
McMillan KL (2006) Lazy abstraction with interpolants. In: Ball T, Jones RB (eds) Computer aided verification, 18th international conference, CAV 2006, Seattle, WA, USA, 17–20 Aug 2006, proceedings, volume 4144 of Lecture notes in computer science. Springer, pp 123–136
Pavel P (1997) Lower bounds for resolution and cutting plane proofs and monotone computations. J Symb Log 62(3):981–998
Rollini S, Bruttomesso R, Sharygina N (2010) An efficient and flexible approach to resolution proof reduction. In: Barner S, Harris IG, Kroening D, Raz O (eds) Hardware and software: verification and testing—6th international Haifa verification conference, HVC 2010, Haifa, Israel, 4–7 Oct 2010. Revised selected papers, volume 6504 of Lecture notes in computer science. Springer, pp 182–196
Rollini SF, Alt L, Fedyukovich G, Hyvärinen AEJ, Sharygina N (2013) PeRIPLO: a framework for producing effective interpolants in SAT-based software verification. In: McMillan KL, Middeldorp A, Voronkov A (eds) Logic for programming, artificial intelligence, and reasoning—19th international conference, LPAR-19, Stellenbosch, South Africa, 14–19 Dec 2013. Proceedings, volume 8312 of Lecture notes in computer science. Springer, pp 683–693
Rollini SF, Bruttomesso R, Sharygina N, Tsitovich A (2014) resolution proof transformation for compression and interpolation. Form Methods Syst Des 45(1):1–41
Rollini SF, Sery O, Sharygina N (2012) Leveraging interpolant strength in model checking. In: Madhusudan P, Seshia SA (eds) Computer aided verification—24th international conference, CAV 2012, Berkeley, CA, USA, 7–13 July 2012, proceedings, volume 7358 of Lecture notes in computer science. Springer, pp 193–209
Rümmer P, Hojjat H, Kuncak V (2014) Classifying and solving horn clauses for verification. In: Cohen E, Rybalchenko A (eds) Verified software: theories, tools, experiments: 5th international conference, VSTTE 2013, Menlo Park, CA, USA, 17–19 May 2013, revised selected papers. Springer, Berlin, pp 1–21
SAT competition. http://www.satcompetition.org/
Sery O, Fedyukovich G, Sharygina N (2012) Incremental upgrade checking by means of interpolation-based function summaries. In: 2012 formal methods in computer-aided design (FMCAD), pp 114–121
Sery O, Fedyukovich G, Sharygina N (2012) FunFrog: bounded model checking with interpolation-based function summarization. In: Chakraborty S, Mukund M (eds) Automated technology for verification and analysis—10th international symposium, ATVA 2012, Thiruvananthapuram, India, 3–6 Oct 2012. Proceedings, volume 7561 of Lecture notes in computer science. Springer, pp 203–207
Sery O, Fedyukovich G, Sharygina N (2012) Interpolation-based function summaries in bounded model checking. In: Eder K, Lourenço J, Shehory O (eds) Hardware and software: verification and testing: 7th international Haifa verification conference, HVC 2011, Haifa, Israel, 6–8 Dec 2011, revised selected papers. Springer Berlin, pp 160–175
Tange O (2011) GNU parallel—the command-line power tool. USENIX Mag 36(1):42–47
Tonetta S (2009) Abstract model checking without computing the abstraction. Springer, Berlin, pp 89–105
Tseitin GS (1969) On the complexity of derivation in propositional calculus. In: Studies in constructive mathematics and mathematical logic, part II, volume 8 of seminars in mathematics, V. A. Steklov Mathematical Institute, Leningrad. Consultants Bureau
Vizel Y, Grumberg O (2009) Interpolation-sequence based model checking. In: Proceedings of 9th international conference on formal methods in computer-aided design, FMCAD 2009, 15–18 Nov 2009, Austin, Texas, USA. IEEE, pp 1–8
Vizel Y, Gurfinkel A, Malik S (2015) Fast interpolating BMC. In: Kroening D, Păsăreanu CS (eds) Computer aided verification, number 9206 in Lecture notes in computer science. Springer, pp 641–657. https://doi.org/10.1007/978-3-319-21690-4_43
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This work was partially supported by the Czech Science Foundation Project Number 18-17403S and by the Swiss National Science Foundation (SNSF) grant 200020_166288.
Rights and permissions
About this article
Cite this article
Jančík, P., Kofroň, J., Alt, L. et al. Exploiting partial variable assignment in interpolation-based model checking. Form Methods Syst Des 55, 33–71 (2019). https://doi.org/10.1007/s10703-019-00342-z
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10703-019-00342-z