Automating Inductive Proofs Using Theory Exploration

HipSpec is a system for automatically deriving and proving properties about functional programs. It uses a novel approach, combining theory exploration, counterexample testing and inductive theorem proving. HipSpec automatically generates a set of equational theorems about the available recursive functions of a program. These equational properties make up an algebraic specification for the program and can in addition be used as a background theory for proving additional user-stated properties. Experimental results are encouraging: HipSpec compares favourably to other inductive theorem provers and theory exploration systems.

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

[2]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

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

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

[5]  Alan Bundy,et al.  Conjecture Synthesis for Inductive Theories , 2011, Journal of Automated Reasoning.

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

[7]  Simon L. Peyton Jones,et al.  HALO: haskell to logic through denotational semantics , 2013, POPL.

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

[9]  Alan Bundy,et al.  Scheme-based theorem discovery and concept invention , 2012, Expert Syst. Appl..

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

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

[12]  Alan Bundy,et al.  Lemma Discovery and Middle-Out Reasoning for Automated Inductive Proofs , 2010 .

[13]  Nathan Wasser,et al.  Verification, Induction, Termination Analysis , 2011 .

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

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

[16]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2011, SIGP.

[17]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[18]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[19]  Alan Bundy,et al.  Dynamic Rippling, Middle-Out Reasoning and Lemma Discovery , 2010, Verification, Induction, Termination Analysis.

[20]  Alan Bundy,et al.  Rippling - meta-level guidance for mathematical reasoning , 2005, Cambridge tracts in theoretical computer science.

[21]  A. Bundy,et al.  Automated Discovery of Inductive Theorems , 2007 .

[22]  K. Claessen,et al.  Proving Equational Haskell Properties Using Automated Theorem Provers , 2012 .

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