The Relationship between Craig Interpolation and Recursion-Free Horn Clauses

Despite decades of research, there are still a number of concepts commonly found in software programs that are considered challenging for verification: among others, such concepts include concurrency, and the compositional analysis of programs with procedures. As a promising direction to overcome such difficulties, recently the use of Horn constraints as intermediate representation of software programs has been proposed. Horn constraints are related to Craig interpolation, which is one of the main techniques used to construct and refine abstractions in verification, and to synthesise inductive loop invariants. We give a survey of the different forms of Craig interpolation found in literature, and show that all of them correspond to natural fragments of (recursion-free) Horn constraints. We also discuss techniques for solving systems of recursion-free Horn constraints.

[1]  Daniel Kroening,et al.  An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic , 2010, Journal of Automated Reasoning.

[2]  Andreas Podelski,et al.  Relative Completeness of Abstraction Refinement for Software Model Checking , 2002, TACAS.

[3]  Nikolaj Bjørner,et al.  Program Verification as Satisfiability Modulo Theories , 2013, SMT@IJCAR.

[4]  K. McMillan,et al.  Solving Constrained Horn Clauses using Interpolation , 2013 .

[5]  Kenneth L. McMillan,et al.  Lazy Abstraction with Interpolants , 2006, CAV.

[6]  William Craig,et al.  Linear reasoning. A new form of the Herbrand-Gentzen theorem , 1957, Journal of Symbolic Logic.

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

[8]  Mana Taghdiri,et al.  Inferring specifications to detect errors in code , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

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

[10]  Thomas A. Henzinger,et al.  Abstractions from proofs , 2004, POPL.

[11]  Viktor Kuncak,et al.  Satisfiability Modulo Recursive Programs , 2011, SAS.

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

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

[14]  Grigory Fedyukovich,et al.  Interpolation-Based Function Summaries in Bounded Model Checking , 2011, Haifa Verification Conference.

[15]  Marsha Chechik,et al.  Craig Interpretation , 2012, SAS.

[16]  Viktor Kuncak,et al.  Disjunctive Interpolants for Horn-Clause Verification (Extended Technical Report) , 2013, ArXiv.

[17]  Zohar Manna,et al.  Proving termination with multiset orderings , 1979, CACM.

[18]  Ashutosh Gupta,et al.  Predicate abstraction and refinement for verifying multi-threaded programs , 2011, POPL '11.

[19]  Marsha Chechik,et al.  Ufo: A Framework for Abstraction- and Interpolation-Based Software Verification , 2012, CAV.

[20]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[21]  Harry R. Lewis,et al.  Renaming a Set of Clauses as a Horn Set , 1978, JACM.

[22]  Christian G. Fermüller,et al.  Resolution Decision Procedures , 2001, Handbook of Automated Reasoning.

[23]  RybalchenkoAndrey,et al.  Predicate abstraction and refinement for verifying multi-threaded programs , 2011 .

[24]  Shuvendu K. Lahiri,et al.  Corral: A Solver for Reachability Modulo Theories , 2012 .

[25]  Maria Paola Bonacina,et al.  On Interpolation in Automated Theorem Proving , 2014, Journal of Automated Reasoning.

[26]  Jorge A. Navas,et al.  A Flexible, (C)LP-Based Approach to the Analysis of Object-Oriented Programs , 2008, LOPSTR.

[27]  Jochen Hoenicke,et al.  Nested interpolants , 2010, POPL '10.

[28]  Ashutosh Gupta,et al.  Solving Recursion-Free Horn Clauses over LI+UIF , 2011, APLAS.

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

[30]  Marsha Chechik,et al.  Whale: An Interpolation-Based Algorithm for Inter-procedural Verification , 2012, VMCAI.