Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
Rippling: meta-level guidance for mathematical reasoning
Rippling: meta-level guidance for mathematical reasoning
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
VCC: A Practical System for Verifying Concurrent C
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions
Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions
VeriFast: a powerful, sound, predictable, fast verifier for C and java
NFM'11 Proceedings of the Third international conference on NASA Formal methods
The ACL2 sedan theorem proving system
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
A polymorphic intermediate verification language: design and logical encoding
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Case-Analysis for rippling and inductive proof
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Developing verified programs with dafny
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
The guardol language and verification system
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Zeno: an automated prover for properties of recursive data structures
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Developing verified programs with Dafny
Proceedings of the 2012 ACM conference on High integrity language technology
A DSL for cross-domain security
Proceedings of the 2012 ACM conference on High integrity language technology
HALO: haskell to logic through denotational semantics
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CADE'13 Proceedings of the 24th international conference on Automated Deduction
Automating inductive proofs using theory exploration
CADE'13 Proceedings of the 24th international conference on Automated Deduction
Automating theorem proving with SMT
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
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.