Equational formulae with membership constraints
Information and Computation
On the complexity of integer programming
Journal of the ACM (JACM)
Complexity Results for First-Order Two-Variable Logic with Counting
SIAM Journal on Computing
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reasoning about recursively defined data structures
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Minimal Solutions of Linear Diophantine Systems: Bounds and Algorithms
RTA '91 Proceedings of the 4th International Conference on Rewriting Techniques and Applications
A Decision Procedure for an Extensional Theory of Arrays
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Complexity of the Two-Variable Fragment with Counting Quantifiers
Journal of Logic, Language and Information
Deciding Boolean Algebra with Presburger Arithmetic
Journal of Automated Reasoning
An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types
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
Solving Quantified Verification Conditions Using Satisfiability Modulo Theories
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Towards Efficient Satisfiability Checking for Boolean Algebra with Presburger Arithmetic
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Fractional Collections with Cardinality Bounds, and Mixed Linear Arithmetic with Stars
CSL '08 Proceedings of the 22nd international workshop on Computer Science Logic
Programming in Scala: A Comprehensive Step-by-step Guide
Programming in Scala: A Comprehensive Step-by-step Guide
Decision procedures for algebraic data types with abstractions
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Decision procedures for multisets with cardinality constraints
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
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
Combining theories with shared set operations
FroCoS'09 Proceedings of the 7th international conference on Frontiers of combining systems
Carathéodory bounds for integer cones
Operations Research Letters
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Ordered sets in the calculus of data structures
CSL'10/EACSL'10 Proceedings of the 24th international conference/19th annual conference on Computer science logic
What's decidable about sequences?
ATVA'10 Proceedings of the 8th international conference on Automated technology for verification and analysis
Sets with cardinality constraints in satisfiability modulo theories
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Mostly-automated verification of low-level programs in computational separation logic
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Predicate abstraction of Java programs with collections
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Techniques such as verification condition generation, predicate abstraction, and expressive type systems reduce software verification to proving formulas in expressive logics. Programs and their specifications often make use of data structures such as sets, multisets, algebraic data types, or graphs. Consequently, formulas generated from verification also involve such data structures. To automate the proofs of such formulas we propose a logic (a “calculus”) of such data structures. We build the calculus by starting from decidable logics of individual data structures, and connecting them through functions and sets, in ways that go beyond the frameworks such as Nelson-Oppen. The result are new decidable logics that can simultaneously specify properties of different kinds of data structures and overcome the limitations of the individual logics. Several of our decidable logics include abstraction functions that map a data structure into its more abstract view (a tree into a multiset, a multiset into a set), into a numerical quantity (the size or the height), or into the truth value of a candidate data structure invariant (sortedness, or the heap property). For algebraic data types, we identify an asymptotic many-to-one condition on the abstraction function that guarantees the existence of a decision procedure. In addition to the combination based on abstraction functions, we can combine multiple data structure theories if they all reduce to the same data structure logic. As an instance of this approach, we describe a decidable logic whose formulas are propositional combinations of formulas in: weak monadic second-order logic of two successors, two-variable logic with counting, multiset algebra with Presburger arithmetic, the Bernays-Schönfinkel-Ramsey class of first-order logic, and the logic of algebraic data types with the set content function. The subformulas in this combination can share common variables that refer to sets of objects along with the common set algebra operations. Such sound and complete combination is possible because the relations on sets definable in the component logics are all expressible in Boolean Algebra with Presburger Arithmetic. Presburger arithmetic and its new extensions play an important role in our decidability results. In several cases, when we combine logics that belong to NP, we can prove the satisfiability for the combined logic is still in NP.