A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Detecting equality of variables in programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The reduced relative power operation on abstract domains
Theoretical Computer Science
Avoiding exponential explosion: generating compact verification conditions
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An axiomatic basis for computer programming
Communications of the ACM
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Discipline of Programming
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Dynamic Partitioning in Analyses of Numerical Properties
SAS '99 Proceedings of the 6th International Symposium on Static Analysis
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Approximating module semantics with constraints
Proceedings of the 2004 ACM symposium on Applied computing
Weakest-precondition of unstructured programs
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Efficient weakest preconditions
Information Processing Letters
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Trace partitioning in abstract interpretation based static analyzers
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Replayer: automatic protocol replay by binary analysis
Proceedings of the 13th ACM conference on Computer and communications security
Program verification as probabilistic inference
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reachability analysis for annotated code
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
Using SMT solvers to verify high-integrity programs
Proceedings of the second workshop on Automated formal methods
Calysto: scalable and precise extended static checking
Proceedings of the 30th international conference on Software engineering
Predicate Abstraction in a Program Logic Calculus
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
Symbolic program analysis using term rewriting and generalization
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Could We Have Chosen a Better Loop Invariant or Method Contract?
TAP '09 Proceedings of the 3rd International Conference on Tests and Proofs
Automatic Inference of Frame Axioms Using Static Analysis
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Inferring disjunctive postconditions
ASIAN'06 Proceedings of the 11th Asian computing science conference on Advances in computer science: secure software and related issues
Exploiting shared structure in software verification conditions
HVC'07 Proceedings of the 3rd international Haifa verification conference on Hardware and software: verification and testing
Sufficient preconditions for modular assertion checking
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
Verification by parallelization of parametric code
Algebraic and proof-theoretic aspects of non-classical logics
An overview of the Jahob analysis system: project goals and current status
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Loop invariant synthesis in a combined domain
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
Bakar Kiasan: flexible contract checking for critical systems using symbolic execution
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Enhancing spark's contract checking facilities using symbolic execution
SIGAda '11 Proceedings of the 2011 ACM annual international conference on Special interest group on the ada programming language
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Path-Sensitive dataflow analysis with iterative refinement
SAS'06 Proceedings of the 13th international conference on Static Analysis
Counterexample driven refinement for abstract interpretation
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Automatic inference of access permissions
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Loop invariant synthesis in a combined abstract domain
Journal of Symbolic Computation
Thresher: precise refutations for heap reachability
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
This paper describes a sound technique that combines the precision of theorem proving with the loop-invariant inference of abstract interpretation. The loop-invariant computations are invoked on demand when the need for a stronger loop invariant arises, which allows a gradual increase in the level of precision used by the abstract interpreter. The technique generates loop invariants that are specific to a subset of a program’s executions, achieving a dynamic and automatic form of value-based trace partitioning. Finally, the technique can be incorporated into a lemmas-on-demand theorem prover, where the loop-invariant inference happens after the generation of verification conditions.