Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Automatic generation of invariants and intermediate assertions
Theoretical Computer Science - Special issue: principles and practice of constraint programming
Frangipani: a scalable distributed file system
Proceedings of the sixteenth ACM symposium on Operating systems principles
Communications of the ACM
Avoiding exponential explosion: generating compact verification conditions
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The synthesis of loop predicates
Communications of the ACM
Automatic predicate abstraction of C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
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
Implementation of an array bound checker
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
A more mechanical approach to program verification
Programming Symposium, Proceedings Colloque sur la Programmation
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
Powerful Techniques for the Automatic Generation of Invariants
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Time regions and effects for resource usage analysis
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Counter-Example Based Predicate Discovery in Predicate Abstraction
FMCAD '02 Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design
Shape Analysis through Predicate Abstraction and Model Checking
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Verification Using Test Generation Techniques
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
ARCHER: using symbolic, path-sensitive analysis to detect memory access errors
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transition predicate abstraction and fair termination
Proceedings of the 32nd 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
Polymorphic predicate abstraction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verifying properties of well-founded linked lists
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Context-sensitive domain-independent algorithm composition and selection
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Transition predicate abstraction and fair termination
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
High coverage detection of input-related security facults
SSYM'03 Proceedings of the 12th conference on USENIX Security Symposium - Volume 12
Combining Theorem Proving with Model Checking through Predicate Abstraction
IEEE Design & Test
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
Predicate abstraction with indexed predicates
ACM Transactions on Computational Logic (TOCL)
A practical and precise inference and specializer for array bound checks elimination
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Lifting abstract interpreters to quantified logical domains
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using SMT solvers to verify high-integrity programs
Proceedings of the second workshop on Automated formal methods
DySy: dynamic symbolic execution for invariant inference
Proceedings of the 30th international conference on Software engineering
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Discovering properties about arrays in simple programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Thread Quantification for Concurrent Shape Analysis
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Predicate Abstraction in a Program Logic Calculus
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
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
An integrated proof language for imperative programs
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Strongest postcondition of unstructured programs
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
Automatic Verification of Integer Array Programs
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
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
Automatic Inference of Frame Axioms Using Static Analysis
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
An ILP System for Learning Head Output Connected Predicates
EPIA '09 Proceedings of the 14th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence
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
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Symmetry and completeness in the analysis of parameterized systems
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Array abstractions from proofs
CAV'07 Proceedings of the 19th international conference on Computer aided verification
White-box testing by combining deduction-based specification extraction and black-box testing
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Inferring disjunctive postconditions
ASIAN'06 Proceedings of the 11th Asian computing science conference on Advances in computer science: secure software and related issues
On-demand refinement of dependent types
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
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
Mechanical inference of invariants for FOR-loops
Journal of Symbolic Computation
Counterexample guided abstraction refinement algorithm for propositional circumscription
JELIA'10 Proceedings of the 12th European conference on Logics in artificial intelligence
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
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
COMBINE: a tool on combined formal methods for bindingly verification
ATVA'10 Proceedings of the 8th international conference on Automated technology for verification and analysis
Automatically inferring quantified loop invariants by algorithmic learning from simple templates
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Efficient predicate abstraction of program summaries
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Process restructuring in the presence of message-dependent variables
ICSOC'10 Proceedings of the 2010 international conference on Service-oriented computing
Predicate abstraction in a program logic calculus
Science of Computer Programming
Service Oriented Computing and Applications
Existential quantification as incremental SAT
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Computing preconditions and postconditions of while loops
ICTAC'11 Proceedings of the 8th international conference on Theoretical aspects of computing
Predicate abstraction of RTL verilog descriptions using constraint logic programming
ATVA'05 Proceedings of the Third international conference on Automated Technology for Verification and Analysis
Invariant and type inference for matrices
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Deriving invariants by algorithmic learning, decision procedures, and predicate abstraction
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
Shape analysis by predicate abstraction
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
SMT techniques for fast predicate abstraction
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Applying constraint logic programming to predicate abstraction of RTL verilog descriptions
MICAI'05 Proceedings of the 4th Mexican international conference on Advances in Artificial Intelligence
A logic and decision procedure for predicate abstraction of heap-manipulating programs
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
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
Symbolic execution with abstract subsumption checking
SPIN'06 Proceedings of the 13th international conference on Model Checking Software
Lazy abstraction with interpolants for arrays
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Automaton-Based array initialization analysis
LATA'12 Proceedings of the 6th international conference on Language and Automata Theory and Applications
Learning boolean functions incrementally
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
SAFARI: SMT-based abstraction for arrays with interpolants
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Invariant functions and invariant relations: An alternative to invariant assertions
Journal of Symbolic Computation
Generic Abstraction of Dictionaries and Arrays
Electronic Notes in Theoretical Computer Science (ENTCS)
SAS'12 Proceedings of the 19th international conference on Static Analysis
Optimizing database-backed applications with query synthesis
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Inferring complete initialization of arrays
Theoretical Computer Science
PLDI 2002: Extended static checking for Java
ACM SIGPLAN Notices - Supplemental issue
RedCard: redundant check elimination for dynamic race detectors
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
A Relatively Complete Generic Hoare Logic for Order-Enriched Effects
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Hi-index | 0.00 |
Software verification is an important and difficult problem. Many static checking techniques for software require annotations from the programmer in the form of method specifications and loop invariants. This annotation overhead, particularly of loop invariants, is a significant hurdle in the acceptance of static checking. We reduce the annotation burden by inferring loop invariants automatically.Our method is based on predicate abstraction, an abstract interpretation technique in which the abstract domain is constructed from a given set of predicates over program variables. A novel feature of our approach is that it infers universally-quantified loop invariants, which are crucial for verifying programs that manipulate unbounded data such as arrays. We present heuristics for generating appropriate predicates for each loop automatically; the programmer can specify additional predicates as well. We also present an efficient algorithm for computing the abstraction of a set of states in terms of a collection of predicates.Experiments on a 44KLOC program show that our approach can automatically infer the necessary predicates and invariants for all but 31 of the 396 routines that contain loops.