Handbook of logic in computer science (vol. 2)
Extensions of first order logic
Extensions of first order logic
Putting static analysis to work for verification: A case study
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Journal of Automated Reasoning
An LCF-Style Interface between HOL and First-Order Logic
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Combining superposition, sorts and splitting
Handbook of automated reasoning
Deciding Boolean Algebra with Presburger Arithmetic
Journal of Automated Reasoning
AI Communications - CASC
Modular data structure verification
Modular data structure verification
Data Refinement: Model-Oriented Proof Methods and their Comparison
Data Refinement: Model-Oriented Proof Methods and their Comparison
Automated verification of shape and size properties via separation logic
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
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
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
A verification methodology for model fields
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Proving Resource Consumption of Low-level Programs Using Automated Theorem Provers
Electronic Notes in Theoretical Computer Science (ENTCS)
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Towards Efficient Satisfiability Checking for Boolean Algebra with Presburger Arithmetic
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Handling Polymorphism in Automated Deduction
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Array abstractions from proofs
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Runtime checking for program verification
RV'07 Proceedings of the 7th international conference on Runtime verification
Analysis of invariants for efficient bounded verification
Proceedings of the 19th international symposium on Software testing and analysis
Automatic decidability and combinability
Information and Computation
Verification of semantic commutativity conditions and inverse operations on linked data structures
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Separation logic + superposition calculus = heap theorem prover
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Correct code containing containers
TAP'11 Proceedings of the 5th international conference on Tests and proofs
Shape analysis of low-level c with overlapping structures
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Encoding monomorphic and polymorphic types
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Parallel bounded analysis in code with rich invariants by refinement of field bounds
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
This paper presents our integration of efficient resolution-based theorem provers into the Jahob data structure verification system. Our experimental results show that this approach enables Jahob to automatically verify the correctness of a range of complex dynamically instantiable data structures, such as hash tables and search trees, without the need for interactive theorem proving or techniques tailored to individual data structures. Our primary technical results include: (1) a translation from higher-order logic to first-order logic that enables the application of resolution-based theorem provers and (2) a proof that eliminating type (sort) information in formulas is both sound and complete, even in the presence of a generic equality operator. Our experimental results show that the elimination of type information often dramatically decreases the time required to prove the resulting formulas. These techniques enabled us to verify complex correctness properties of Java programs such as a mutable set implemented as an imperative linked list, a finite map implemented as a functional ordered tree, a hash table with a mutable array, and a simple library system example that uses these container data structures. Our system verifies (in a matter of minutes) that data structure operations correctly update the finite map, that they preserve data structure invariants (such as ordering of elements, membership in appropriate hash table buckets, or relationships between sets and relations), and that there are no run-time errors such as null dereferences or array out of bounds accesses.