Steering Interpolants Generation with Efficient Interpolation Abstraction Exploration

Craig interpolation has emerged as an effective approximation method and can be widely applied in hardware and software model checking. Since the quality of interpolants can critically affect the success and failure, or convergence and divergence of model checking, researchers have put forward a novel and flexible interpolation abstraction-based technique to guide the computation of promising interpolants. In this technique, abstraction lattice is constructed to arrange families of interpolation abstraction for improving the quality of resulting interpolants. However, the original search strategy to explore an abstraction lattice is not efficient when abstraction lattice enlarges and the elapsed time to perform multiple search on the same abstraction lattice is obviously distinct for many problems. In this paper, in order to alleviate these problems, we propose a top-down search space pruning-based algorithm to search the abstraction lattice and implement this algorithm in the well-known model checker Eldarica. We conduct experiments on 179 benchmarks to compare our algorithm respectively against the original search algorithm in Eldarica and the state-of-the-art SMT solver Z3. The experimental results show that our algorithm performs much better in the sense that it is more efficient than Eldarica for most of the benchmarks and it can solve much more benchmarks than Z3.

[1]  Roberto Bruttomesso,et al.  An Efficient and Flexible Approach to Resolution Proof Reduction , 2010, Haifa Verification Conference.

[2]  Swarat Chaudhuri,et al.  Consistency analysis of decision-making programs , 2014, POPL.

[3]  Natasha Sharygina,et al.  Leveraging Interpolant Strength in Model Checking , 2012, CAV.

[4]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[5]  Kenneth L. McMillan,et al.  Quantified Invariant Generation Using an Interpolating Saturation Prover , 2008, TACAS.

[6]  Tomás Vojnar,et al.  Automatic Verification of Integer Array Programs , 2009, CAV.

[7]  Thomas A. Henzinger,et al.  Invariant Synthesis for Combined Theories , 2007, VMCAI.

[8]  Sumit Gulwani,et al.  Program verification using templates over predicate abstraction , 2009, PLDI '09.

[9]  Andrei Voronkov,et al.  Playing in the grey area of proofs , 2012, POPL '12.

[10]  Dirk Beyer,et al.  CPAchecker: A Tool for Configurable Software Verification , 2009, CAV.

[11]  Daniel Kroening,et al.  Interpolant Strength , 2010, VMCAI.

[12]  Vladimir Klebanov,et al.  Automating regression verification , 2014, Software Engineering & Management.

[13]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[14]  Isil Dillig,et al.  Inductive invariant generation via abductive inference , 2013, OOPSLA.

[15]  Philipp Rümmer,et al.  Exploring interpolants , 2013, 2013 Formal Methods in Computer-Aided Design.

[16]  Viktor Kuncak,et al.  Accelerating Interpolants , 2012, ATVA.

[17]  Kenneth L. McMillan Applications of Craig Interpolation to Model Checking , 2005, ICATPN.

[18]  Wang Yi,et al.  Horn Clauses for Communicating Timed Systems , 2014, HCVS.

[19]  Daniel Kroening,et al.  SATABS: SAT-Based Predicate Abstraction for ANSI-C , 2005, TACAS.

[20]  Wei-Ngan Chin,et al.  Dual analysis for proving safety and finding bugs , 2010, SAC '10.

[21]  Andrey Rybalchenko,et al.  Synthesizing software verifiers from proof rules , 2012, PLDI.

[22]  Thomas A. Henzinger,et al.  Abstractions from proofs , 2004, SIGP.

[23]  Rupak Majumdar,et al.  Algorithmic verification of asynchronous programs , 2010, TOPL.

[24]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[25]  Aws Albarghouthi,et al.  Beautiful Interpolants , 2013, CAV.

[26]  Kenneth L. McMillan,et al.  Automatic Abstraction without Counterexamples , 2003, TACAS.

[27]  Viktor Kuncak,et al.  A Verification Toolkit for Numerical Transition Systems - Tool Paper , 2012, FM.

[28]  Ranjit Jhala,et al.  A Practical and Complete Approach to Predicate Refinement , 2006, TACAS.

[29]  Ahmed Bouajjani,et al.  Programs with lists are counter automata , 2011, Formal Methods Syst. Des..

[30]  Tanja Schindler,et al.  Selfless Interpolation for Infinite-State Model Checking , 2018, VMCAI.

[31]  William Craig,et al.  Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory , 1957, Journal of Symbolic Logic.