Induction for SMT Solvers

Satisfiability modulo theory solvers are increasingly being used to solve quantified formulas over structures such as integers and term algebras. Quantifier instantiation combined with ground decision procedure alone is insufficient to prove many formulas of interest in such cases. We present a set of techniques that introduce inductive reasoning into SMT solving algorithms that is sound with respect to the interpretation of structures in SMT-LIB standard. The techniques include inductive strengthening of conjecture to be proven, as well as facility to automatically discover subgoals during an inductive proof, where subgoals themselves can be proven using induction. The techniques have been implemented in CVC4. Our experiments show that the developed techniques have good performance and coverage of a range of inductive reasoning problems. Our experiments also show the impact of different representations of natural numbers and quantifier instantiation techniques on the performance of inductive reasoning. Our solution is freely available in the CVC4 development repository. In addition its overall effectiveness, it has an advantage of accepting SMT-LIB input and being integrated with other SMT solving techniques of CVC4.

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

[2]  K. Rustan M. Leino,et al.  Automating Induction with an SMT Solver , 2012, VMCAI.

[3]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[4]  Cesare Tinelli,et al.  An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types , 2007, PDPAR/PaUL@FLoC.

[5]  Andrey Rybalchenko,et al.  Binary Reachability Analysis of Higher Order Functional Programs , 2012, SAS.

[6]  Sophia Drossopoulou,et al.  Zeno: An Automated Prover for Properties of Recursive Data Structures , 2012, TACAS.

[7]  J. Saxe,et al.  An Explicating Theorem Prover for Quantified Formulas , 2004 .

[8]  Viktor Kuncak,et al.  Disjunctive Interpolants for Horn-Clause Verification , 2013, CAV.

[9]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[10]  Cesare Tinelli,et al.  Instantiation-Based Invariant Discovery , 2011, NASA Formal Methods.

[11]  Leonardo Mendonça de Moura,et al.  Computation in Real Closed Infinitesimal and Transcendental Extensions of the Rationals , 2013, CADE.

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

[13]  Koen Claessen,et al.  QuickSpec: Guessing Formal Specifications Using Testing , 2010, TAP@TOOLS.

[14]  Andrew Ireland,et al.  Productive use of failure in inductive proof , 1996, Journal of Automated Reasoning.

[15]  Alan Bundy,et al.  The Automation of Proof by Mathematical Induction , 1999, Handbook of Automated Reasoning.

[16]  Alan Bundy,et al.  Case-Analysis for Rippling and Inductive Proof , 2010, ITP.

[17]  Viktor Kuncak,et al.  Symbolic Resource Bound Inference for Functional Programs , 2014, CAV.

[18]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[19]  Cesare Tinelli,et al.  Finding conflicting instances of quantified formulas in SMT , 2014, 2014 Formal Methods in Computer-Aided Design (FMCAD).

[20]  Cesare Tinelli,et al.  Solving Quantified Verification Conditions Using Satisfiability Modulo Theories , 2007, CADE.

[21]  Cesare Tinelli,et al.  Combined Satisfiability Modulo Parametric Theories , 2007, TACAS.

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

[23]  Frank Pfenning,et al.  Automated Deduction - CADE-21, 21st International Conference on Automated Deduction, Bremen, Germany, July 17-20, 2007, Proceedings , 2007, CADE.

[24]  Panagiotis Manolios,et al.  Computer-Aided Reasoning: An Approach , 2011 .

[25]  Alan Robinson,et al.  Handbook of automated reasoning , 2001 .

[26]  Kim G. Larsen,et al.  Memory Efficient Data Structures for Explicit Verification of Timed Systems , 2014, NASA Formal Methods.

[27]  Panagiotis Manolios,et al.  The ACL2 Sedan Theorem Proving System , 2011, TACAS.

[28]  Hubert Comon,et al.  Chapter 14 – Inductionless Induction , 2001 .

[29]  Patrick Maxim Rondon,et al.  Liquid types , 2008, PLDI '08.

[30]  Koen Claessen,et al.  Automating Inductive Proofs Using Theory Exploration , 2013, CADE.

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