Back to the future: revisiting precise program verification using SMT solvers
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
Linear Functional Fixed-points
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Verifying heap-manipulating programs in an SMT framework
ATVA'07 Proceedings of the 5th international conference on Automated technology for verification and analysis
Semi-persistent data structures
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Decidable logics combining heap structures and data
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Decision procedures for the temporal verification of concurrent lists
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
A theory of skiplists with applications to the verification of concurrent datatypes
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Efficient decision procedures for heaps using STRAND
SAS'11 Proceedings of the 18th international conference on Static analysis
Recursive proofs for inductive tree data-structures
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Information and Computation
Natural proofs for structure, data, and separation
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
The key to many approaches to reason about pointerbased data structures is the availability of a decision procedure to automatically discharge proof obligations in a theory encompassing data, pointers, and the reachability relation induced by pointers. So far, only approximate solutions have been proposed which abstract either the data or the reachability component. Indeed, such approximations cause a lack of precision in the verification techniques where the decision procedures are exploited. In this paper, we consider the pointer-based data structure of singly-linked lists and define a Theory of Linked Lists (TLL). The theory is expressive since it is capable of precisely expressing both data and reachability constraints, while ensuring decidability. Furthermore, its decidability problem is NP-complete. We also design a practical decision procedure for TLL which can be combined with a wide range of available decision procedures for theories in firstorder logic.