Results 1 
9 of
9
Automating Induction with an SMT Solver
, 2011
"... Mechanical proof assistants have always had support for inductive proofs. Sometimes an alternative to proof assistants, satisfiability modulo theories (SMT) solvers bring the hope of a higher degree of automation. However, SMT solvers do not natively support induction, so inductive proofs require s ..."
Abstract

Cited by 21 (6 self)
 Add to MetaCart
Mechanical proof assistants have always had support for inductive proofs. Sometimes an alternative to proof assistants, satisfiability modulo theories (SMT) solvers bring the hope of a higher degree of automation. However, SMT solvers do not natively support induction, so inductive proofs require some encoding into the SMT solver’s input. This paper shows a surprisingly simple tactic—a rewriting strategy and a heuristic for when to apply it—that has shown to be useful in verifying simple inductive theorems, like those that can occur during program verification. The paper describes the tactic and its implementation in a program verifier, and reports on the positive experience with using the tactic.
Zeno: An automated prover for properties of recursive data structures
 In Cormac Flanagan and Barbara König, editors, Tools and Algorithms for the Construction and Analysis of Systems — 18th International Conference, TACAS 2012, volume 7214 of Lecture Notes in Computer Science
"... Abstract. Zeno is a new tool for the automatic generation of proofs of simple properties of functions over recursively defined data structures. It takes a Haskell program and an assertion as its goal and tries to contruct a proof for that goal. If successful, it converts the proof into Isabelle code ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Zeno is a new tool for the automatic generation of proofs of simple properties of functions over recursively defined data structures. It takes a Haskell program and an assertion as its goal and tries to contruct a proof for that goal. If successful, it converts the proof into Isabelle code. Zeno searches for a proof tree by iteratively reducing the goal into a conjunction of subgoals, terminating when all leaves are proven true. This process requires the exploration of many alternatives. We have adapted known, and developed new, heuristics for the reduction of the search space. Our new heuristics aim to promote the application of function definitions, and avoid the repetition of similar proof steps. We compare with the rippling based tool IsaPlanner and the industrial strength tool ACL2s on the basis of a test suite from the IsaPlanner website. We found that Zeno compared favourably with these tools both in terms of theorem proving power and speed. 1
Automating inductive proofs using theory exploration
 In Proceedings 24th International Conference on Automated Deduction (CADE24), LNCS
, 2013
"... Abstract. 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 re ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
(Show Context)
Abstract. 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 userstated properties. Experimental results are encouraging: HipSpec compares favourably to other inductive theorem provers and theory exploration systems. 1
On Induction for SMT Solvers
"... Abstract. 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 pre ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
(Show Context)
Abstract. 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 SMTLIB 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 SMTLIB input and being integrated with other SMT solving techniques of CVC4. 1
Coinduction Simply  Automatic Coinductive Proofs in a Program Verifier
, 2013
"... Program verification relies heavily on induction, which has received decades of attention in mechanical verification tools. When program correctness is best described by infinite structures, program verification is usefully aided also by coinduction, which has not benefited from the same degree of ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Program verification relies heavily on induction, which has received decades of attention in mechanical verification tools. When program correctness is best described by infinite structures, program verification is usefully aided also by coinduction, which has not benefited from the same degree of tool support. Coinduction is complicated to work with in interactive proof assistants and has had no previous support in dedicated program verifiers. This paper shows that an SMTbased program verifier can support reasoning about coinduction—handling infinite data structures, lazy function calls, and userdefined properties defined as greatest fixpoints, as well as letting users write coinductive proofs. Moreover, the support can be packaged to provide a simple user experience. The paper describes the features for coinduction in the language and verifier Dafny, defines their translation into input for a firstorder SMT solver, and reports on some encouraging initial experience.
HipSpec: Automating inductive proofs of program properties
 In Workshop on Automated Theory eXploration: ATX 2012
"... We present ongoing work on HipSpec, a system for automatically deriving and proving properties about functional programs. HipSpec uses a combination of theory exploration, counterexample testing and inductive theorem proving to automatically generate a set of equational theorems about recursive fun ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
We present ongoing work on HipSpec, a system for automatically deriving and proving properties about functional programs. HipSpec uses a combination of theory exploration, counterexample testing and inductive theorem proving to automatically generate a set of equational theorems about recursive functions in a program, which are later used as a background theory for proving stated properties about a program. Initial experiments are encouraging; our initial HipSpec prototype already compares favourably to other, similar systems. 1
Model Finding for Recursive Functions in SMT∗
"... SMT solvers have recently been extended with techniques for finding models in presence of universally quantified formulas in some restricted fragments. This paper introduces a translation which reduces axioms specifying a large class of recursive functions, including wellfounded (terminating) func ..."
Abstract
 Add to MetaCart
(Show Context)
SMT solvers have recently been extended with techniques for finding models in presence of universally quantified formulas in some restricted fragments. This paper introduces a translation which reduces axioms specifying a large class of recursive functions, including wellfounded (terminating) functions, to universally quantified formulas for which these techniques are applicable. An empirical evaluation confirms that the approach improves the performance of existing solvers on benchmarks from two sources. The translation is implemented as a preprocessor in the solver CVC4. 1
Automated Proof Pattern Recognition: the Manual
"... This Documents is a Manual supporting the project Machinelearning coalgebraic automated proofs. Several experiments on patternrecognition of proofpatterns are given here. We provide a method to convert automatically produced prooftrees into ..."
Abstract
 Add to MetaCart
(Show Context)
This Documents is a Manual supporting the project Machinelearning coalgebraic automated proofs. Several experiments on patternrecognition of proofpatterns are given here. We provide a method to convert automatically produced prooftrees into
Coinduction in an AutoActive Program Verifier
, 2013
"... Program verification relies heavily on induction, which has received decades of attention in mechanical verification tools. When program correctness is best described by infinite structures, program verification is usefully aided also by coinduction, which has not benefited from the same degree of ..."
Abstract
 Add to MetaCart
Program verification relies heavily on induction, which has received decades of attention in mechanical verification tools. When program correctness is best described by infinite structures, program verification is usefully aided also by coinduction, which has not benefited from the same degree of tool support. Coinduction is complicated to work with in interactive proof assistants and has had no previous support in autoactive program verifiers. This paper shows that an autoactive program verifier can support reasoning about coinduction—handling infinite data structures, lazy function calls, and userdefined properties defined as greatest fixpoints, as well as letting users write coinductive proofs. Moreover, the support can be packaged to provide a simple user experience. The paper describes the features for coinduction in the language and verifier Dafny, defines their translation into input for a firstorder SMT solver, and reports on some encouraging initial experience.