The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Predicate abstraction for software verification
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Shape Analysis through Predicate Abstraction and Model Checking
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
TVLA: A System for Implementing Static Analyses
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A framework for numeric analysis of array operations
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying properties of well-founded linked lists
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An interpolating theorem prover
Theoretical Computer Science - Tools and algorithms for the construction and analysis of systems (TACAS 2004)
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Using first-order theorem provers in the Jahob data structure verification system
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Invariant synthesis for combined theories
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Scalable analysis of linear systems using mathematical programming
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Shape analysis by predicate abstraction
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Lazy abstraction with interpolants
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Localization and register sharing for predicate abstraction
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
What's decidable about arrays?
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Predicate abstraction via symbolic decision procedures
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Interpolant-based transition relation approximation
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
A local shape analysis based on separation logic
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A practical and complete approach to predicate refinement
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A buffer overflow benchmark for software model checkers
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Lifting abstract interpreters to quantified logical domains
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Discovering properties about arrays in simple programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Verifying Reference Counting Implementations
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Finding Loop Invariants for Programs over Arrays Using a Theorem Prover
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Program verification using templates over predicate abstraction
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Automatic Verification of Integer Array Programs
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Abstraction Refinement for Quantified Array Assertions
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient interpolant generation in satisfiability modulo theories
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
Non-disjunctive numerical domain for array predicate abstraction
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Efficient generation of craig interpolants in satisfiability modulo theories
ACM Transactions on Computational Logic (TOCL)
Symbolic heap abstraction with demand-driven axiomatization of memory invariants
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A parametric segmentation functor for fully automatic and scalable array content analysis
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Non-monotonic refinement of control abstraction for concurrent programs
ATVA'10 Proceedings of the 8th international conference on Automated technology for verification and analysis
LPAR'10 Proceedings of the 17th international conference on Logic for programming, artificial intelligence, and reasoning
Automatically inferring quantified loop invariants by algorithmic learning from simple templates
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Static contract checking with abstract interpretation
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
Predicate generation for learning-based quantifier-free loop invariant inference
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
On inter-procedural analysis of programs with lists and data
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Verifying SystemC: a software model checking approach
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
Playing in the grey area of proofs
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Invariant and type inference for matrices
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
An analysis of permutations in arrays
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Invariant synthesis for programs manipulating lists with unbounded data
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Fluid updates: beyond strong vs. weak updates
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Interpolation and symbol elimination in vampire
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Abstract domains for automated reasoning about list-manipulating programs with infinite data
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Lazy abstraction with interpolants for arrays
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Counterexample-Guided precondition inference
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
QUIC graphs: relational invariant generation for containers
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Learning universally quantified invariants of linear data structures
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
We present a technique for using infeasible program paths to automatically infer Range Predicates that describe properties of unbounded array segments. First, we build proofs showing the infeasibility of the paths, using axioms that precisely encode the high-level (but informal) rules with which programmers reason about arrays. Next, we mine the proofs for Craig Interpolants which correspond to predicates that refute the particular counterexample path. By embedding the predicate inference technique within a Counterexample-Guided Abstraction-Refinement (CEGAR) loop, we obtain a method for verifying data-sensitive safety properties whose precision is tailored in a program- and property-sensitive manner. Though the axioms used are simple, we show that the method suffices to prove a variety of array-manipulating programs that were previously beyond automatic model checkers.