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
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
Interpolation for data structures
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Predicate abstraction with indexed predicates
ACM Transactions on Computational Logic (TOCL)
Discovering properties about arrays in simple programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Program verification using templates over predicate abstraction
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Interpolation and Symbol Elimination
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
Abstraction Refinement for Quantified Array Assertions
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Array abstractions from proofs
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Is lazy abstraction a decision procedure for broadcast protocols?
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
Quantified invariant generation using an interpolating saturation prover
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
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
Automated termination in model checking modulo theories
RP'11 Proceedings of the 5th international conference on Reachability problems
Lazy abstraction with interpolants
CAV'06 Proceedings of the 18th 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
MCMT: a model checker modulo theories
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
An interpolating sequent calculus for quantifier-free presburger arithmetic
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Lazy abstraction with interpolants for arrays
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Lazy abstraction with interpolants for arrays
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
SAFARI: SMT-based abstraction for arrays with interpolants
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Complete instantiation-based interpolation
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Quantifier-free interpolation in combinations of equality interpolating theories
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
Lazy abstraction with interpolants has been shown to be a powerful technique for verifying imperative programs. In presence of arrays, however, the method shows an intrinsic limitation, due to the fact that successful invariants usually contain universally quantified variables, which are not present in the program specification. In this work we present an extension of the interpolation-based lazy abstraction in which arrays of unknown length can be handled in a natural manner. In particular, we exploit the Model Checking Modulo Theories framework, to derive a backward reachability version of lazy abstraction that embeds array reasoning. The approach is generic, in that it is valid for both parameterized systems and imperative programs. We show by means of experiments that our approach can synthesize and prove universally quantified properties over arrays in a completely automatic fashion.