Induction in Saturation-Based Proof Search

Many applications of theorem proving, for example program verification and analysis, require first-order reasoning with both quantifiers and theories such as arithmetic and datatypes. There is no complete procedure for reasoning in such theories but the state-of-the-art in automated theorem proving is still able to reason effectively with real-world problems from this rich domain. In this paper we introduce a missing part of the puzzle: automated induction inside a saturation-based theorem prover. Our goal is to incorporate lightweight automated induction in a way that complements the saturation-based approach, allowing us to solve problems requiring a combination of first-order reasoning, theory reasoning, and inductive reasoning. We implement a number of techniques and heuristics and evaluate them within the Vampire theorem prover. Our results show that these new techniques enjoy practical success on real-world problems.

[1]  Geoff Sutcliffe The TPTP Problem Library and Associated Infrastructure , 2009, Journal of Automated Reasoning.

[2]  Andrei Voronkov,et al.  A decision procedure for term algebras with queues , 2001, TOCL.

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

[4]  Christoph Weidenbach,et al.  Combining Superposition, Sorts and Splitting , 2001, Handbook of Automated Reasoning.

[5]  Andrei Voronkov,et al.  First-Order Theorem Proving and Vampire , 2013, CAV.

[6]  Daniel Wand Superposition: Types and Induction. (Superposition : types et induction) , 2017 .

[7]  Andrei Voronkov,et al.  Extensional Crisis and Proving Identity , 2014, ATVA.

[8]  Stephan Schulz,et al.  E - a brainiac theorem prover , 2002, AI Commun..

[9]  Nikolaj Bjørner,et al.  AVATAR Modulo Theories , 2016, GCAI.

[10]  Andrei Voronkov,et al.  AVATAR: The Architecture for First-Order Theorem Provers , 2014, CAV.

[11]  Albert Rubio,et al.  Paramodulation-Based Theorem Proving , 2001, Handbook of Automated Reasoning.

[12]  Christoph Weidenbach,et al.  Computing Small Clause Normal Forms , 2001, Handbook of Automated Reasoning.

[13]  Nicolas Peltier,et al.  Combining Superposition and Induction: A Practical Realization , 2013, FroCos.

[14]  Jacques D. Fleuriot,et al.  Higher Order Rippling in IsaPlanner , 2004, TPHOLs.

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

[16]  Andrei Voronkov,et al.  New Techniques in Clausal Form Generation , 2016, GCAI.

[17]  Viktor Kuncak,et al.  Induction for SMT Solvers , 2015, VMCAI.

[18]  Jan Maluszy¿ski Verification, Model Checking, and Abstract Interpretation , 2009, Lecture Notes in Computer Science.

[19]  Hubert Comon-Lundh,et al.  Inductionless Induction , 2001, Handbook of Automated Reasoning.

[20]  Andrei Voronkov,et al.  Coming to terms with quantified reasoning , 2016, POPL.

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

[22]  Simon Cruanes,et al.  Superposition with Structural Induction , 2017, FroCoS.

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

[24]  J. A. Robinson,et al.  Handbook of Automated Reasoning (in 2 volumes) , 2001 .