Goal-Directed Invariant Synthesis for Model Checking Modulo Theories
TABLEAUX '09 Proceedings of the 18th International Conference on Automated Reasoning with Analytic Tableaux and Related Methods
Program analysis via satisfiability modulo path programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SMT-AI: an Abstract Interpreter as Oracle for k-induction
Electronic Notes in Theoretical Computer Science (ENTCS)
Strengthening induction-based race checking with lightweight static analysis
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Service Oriented Computing and Applications
Extending Sledgehammer with SMT solvers
CADE'11 Proceedings of the 23rd international conference on Automated deduction
Software verification using k-induction
SAS'11 Proceedings of the 18th international conference on Static analysis
Quantifier elimination by lazy model enumeration
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Inductive invariant generation via abductive inference
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Minimal sets over monotone predicates in boolean formulae
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
A fundamental method of analyzing a system such as a program or a circuit is invariance analysis, in which one proves that an assertion holds on all reachable states. Typically, the proof is performed via induction; however, an assertion, while invariant, may not be inductive (provable via induction). Invariant generation procedures construct auxiliary inductive assertions for strengthening the assertion to be inductive. We describe a general method of generating invariants that is incremental and property-directed. Rather than generating one large auxiliary inductive assertion, our method generates many simple assertions, each of which is inductive relative to those generated before it. Incremental generation is amenable to parallelization. Our method is also property-directed in that it generates inductive assertions that are relevant for strengthening the given assertion. We describe two instances of our method: a procedure for generating clausal invariants of finite-state systems and a procedure for generating affine inequalities of numerical infinite-state systems. We provide evidence that our method scales to checking safety properties of some large finite-state systems.