Predicate Generation for Learning-Based Quantifier-Free Loop Invariant Inference

We address the predicate generation problem in the context of loop invariant inference. Motivated by the interpolation-based abstraction refinement technique, we apply the interpolation theorem to synthesize predicates implicitly implied by program texts. Our technique is able to improve the effectiveness and efficiency of the learning-based loop invariant inference algorithm in [14]. Experiments excerpted from Linux, SPEC2000, and Tar source codes are reported.

[1]  Soonho Kong,et al.  Deriving Invariants by Algorithmic Learning, Decision Procedures, and Predicate Abstraction , 2010, VMCAI.

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

[3]  Claude Marché,et al.  Multi-prover Verification of C Programs , 2004, ICFEM.

[4]  Andreas Podelski,et al.  Boolean and Cartesian Abstraction for Model Checking C Programs , 2001, TACAS.

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

[6]  Yu-Fang Chen,et al.  Learning Boolean Functions Incrementally , 2012, CAV.

[7]  Roberto Bruttomesso,et al.  The MathSAT 4SMT Solver , 2008, CAV.

[8]  L. D. Moura,et al.  The YICES SMT Solver , 2006 .

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

[10]  Javier Esparza,et al.  Abstraction Refinement with Craig Interpolation and Symbolic Pushdown Systems , 2006, J. Satisf. Boolean Model. Comput..

[11]  Daniel Kroening,et al.  Decision Procedures - An Algorithmic Point of View , 2008, Texts in Theoretical Computer Science. An EATCS Series.

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

[13]  Cormac Flanagan,et al.  Predicate abstraction for software verification , 2002, POPL '02.

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

[15]  Benjamin Monate,et al.  A Value Analysis for C Programs , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[16]  Dana Angluin,et al.  Learning Regular Sets from Queries and Counterexamples , 1987, Inf. Comput..

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

[18]  Rupak Majumdar,et al.  CSIsat: Interpolation for LA+EUF , 2008, CAV.

[19]  Kwangkeun Yi,et al.  Termination Analysis with Algorithmic Learning , 2012, CAV.

[20]  Ranjit Jhala,et al.  Array Abstractions from Proofs , 2007, CAV.

[21]  Nader H. Bshouty Exact Learning Boolean Function via the Monotone Theory , 1995, Inf. Comput..

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

[23]  Shuvendu K. Lahiri,et al.  Constructing Quantified Invariants via Predicate Abstraction , 2004, VMCAI.

[24]  Soonho Kong,et al.  Automatically Inferring Quantified Loop Invariants by Algorithmic Learning from Simple Templates , 2010, APLAS.