Using linear algebra in decomposition of Farkas interpolants

The use of propositional logic and systems of linear inequalities over reals is a common means to model software for formal verification. Craig interpolants constitute a central building block in this setting for over-approximating reachable states, e.g. as candidates for inductive loop invariants. Interpolants for a linear system can be efficiently computed from a Simplex refutation by applying the Farkas’ lemma. However, these interpolants do not always suit the verification task—in the worst case, they can even prevent the verification algorithm from converging. This work introduces the decomposed interpolants, a fundamental extension of the Farkas interpolants, obtained by identifying and separating independent components from the interpolant structure, using methods from linear algebra. We also present an efficient polynomial algorithm to compute decomposed interpolants and analyse its properties. We experimentally show that the use of decomposed interpolants in model checking results in immediate convergence on instances where state-of-the-art approaches diverge. Moreover, since being based on the efficient Simplex method, the approach is very competitive in general.

[1]  Kenneth L. McMillan An interpolating theorem prover , 2005, Theor. Comput. Sci..

[2]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[3]  Tad Hogg,et al.  An Economics Approach to Hard Computational Problems , 1997, Science.

[4]  Aaron R. Bradley Understanding IC3 , 2012, SAT.

[5]  Nestan Tsiskaridze,et al.  Conflict Resolution , 2009, CP.

[6]  Natasha Sharygina,et al.  Duality-based interpolation for quantifier-free equalities and uninterpreted functions , 2017, 2017 Formal Methods in Computer Aided Design (FMCAD).

[7]  Jan Kofron,et al.  PVAIR: Partial Variable Assignment InterpolatoR , 2016, FASE.

[8]  Kenneth L. McMillan,et al.  Interpolation and SAT-Based Model Checking , 2003, CAV.

[9]  Grigory Fedyukovich,et al.  Incremental upgrade checking by means of interpolation-based function summaries , 2012, 2012 Formal Methods in Computer-Aided Design (FMCAD).

[10]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[11]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[12]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[13]  Mary Sheeran,et al.  Checking Safety Properties Using Induction and a SAT-Solver , 2000, FMCAD.

[14]  Viorica Sofronie-Stokkermans,et al.  Constraint solving for interpolation , 2007, J. Symb. Comput..

[15]  David Detlefs,et al.  Simplify: a theorem prover for program checking , 2005, JACM.

[16]  Grigory Fedyukovich,et al.  A Proof-Sensitive Approach for Small Propositional Interpolants , 2015, VSTTE.

[17]  Grigory Fedyukovich,et al.  PeRIPLO: A Framework for Producing Effective Interpolants in SAT-Based Software Verification , 2013, LPAR.

[18]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2018, Handbook of Model Checking.

[19]  Natasha Sharygina,et al.  LRA Interpolants from No Man's Land , 2017, Haifa Verification Conference.

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

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

[22]  Joao Marques-Silva,et al.  GRASP: A Search Algorithm for Propositional Satisfiability , 1999, IEEE Trans. Computers.

[23]  Alberto Griggio,et al.  Efficient generation of craig interpolants in satisfiability modulo theories , 2009, TOCL.

[24]  Aaron R. Bradley,et al.  SAT-Based Model Checking without Unrolling , 2011, VMCAI.

[25]  Bruno Dutertre,et al.  Property-directed k-induction , 2016, 2016 Formal Methods in Computer-Aided Design (FMCAD).

[26]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[27]  Albert Oliveras,et al.  Proof-Producing Congruence Closure , 2005, RTA.

[28]  Arie Gurfinkel,et al.  Interpolation Properties and SAT-Based Model Checking , 2012, ATVA.

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

[30]  Cesare Tinelli,et al.  The SMT-LIB Initiative and the Rise of SMT - (HVC 2010 Award Talk) , 2010, Haifa Verification Conference.

[31]  Jan Kofron,et al.  On interpolants and variable assignments , 2014, 2014 Formal Methods in Computer-Aided Design (FMCAD).

[32]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[33]  Jan Kofron,et al.  Decomposing Farkas Interpolants , 2019, TACAS.

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

[35]  Natasha Sharygina,et al.  OpenSMT2: An SMT Solver for Multi-core and Cloud Computing , 2016, SAT.

[36]  Ernst Althaus,et al.  Simple interpolants for linear arithmetic , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[37]  Sagar Chaki,et al.  SMT-Based Model Checking for Recursive Programs , 2014, CAV.

[38]  Pavel Pudlák,et al.  Lower bounds for resolution and cutting plane proofs and monotone computations , 1997, Journal of Symbolic Logic.