Theory of linear and integer programming
Theory of linear and integer programming
Temporal verification of reactive systems: safety
Temporal verification of reactive systems: safety
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
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Hauptvortrag: Quantifier elimination for real closed fields by cylindrical algebraic decomposition
Proceedings of the 2nd GI Conference on Automata Theory and Formal Languages
Non-linear loop invariant generation using Gröbner bases
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Combining abstract interpreters
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
VMCAI'05 Proceedings of the 6th 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
What's decidable about arrays?
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Hierarchic reasoning in local theory extensions
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Program analysis as constraint solving
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Constraint-Based Approach for Analysis of Hybrid Systems
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
SPEED: precise and efficient static estimation of program computational complexity
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Constraint-Based Invariant Inference over Predicate Abstraction
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
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
ACM Computing Surveys (CSUR)
Abstraction Refinement for Quantified Array Assertions
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
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
Array abstractions from proofs
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Cover algorithms and their combination
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Parameterized verification of transactional memories
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
An assume guarantee approach for checking quantified array assertions
AMAST'10 Proceedings of the 13th international conference on Algebraic methodology and software technology
Automatically inferring quantified loop invariants by algorithmic learning from simple templates
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Inferring loop invariants using postconditions
Fields of logic and computation
On inter-procedural analysis of programs with lists and data
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Simplifying loop invariant generation using splitter predicates
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Invariant and type inference for matrices
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Constraint solving for program verification: theory and practice by example
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Hierarchical reasoning for the verification of parametric systems
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Case studies on invariant generation using a saturation theorem prover
MICAI'11 Proceedings of the 10th Mexican international conference on Advances in Artificial Intelligence - Volume Part I
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
Loop invariants: Analysis, classification, and examples
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
We present a constraint-based algorithm for the synthesis of invariants expressed in the combined theory of linear arithmetic and uninterpreted function symbols. Given a set of programmer-specified invariant templates, our algorithm reduces the invariant synthesis problem to a sequence of arithmetic constraint satisfaction queries. Since the combination of linear arithmetic and uninterpreted functions is a widely applied predicate domain for program verification, our algorithm provides a powerful tool to statically and automatically reason about program correctness. The algorithm can also be used for the synthesis of invariants over arrays and set data structures, because satisfiability questions for the theories of sets and arrays can be reduced to the theory of linear arithmetic with uninterpreted functions. We have implemented our algorithm and used it to find invariants for a low-level memory allocator written in C.