Mixed real-integer linear quantifier elimination
ISSAC '99 Proceedings of the 1999 international symposium on Symbolic and algebraic computation
Complexity Results for First-Order Two-Variable Logic with Counting
SIAM Journal on Computing
A Deductive Approach to Program Synthesis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Model-Theoretic Methods in Combined Constraint Satisfiability
Journal of Automated Reasoning
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
Towards Efficient Satisfiability Checking for Boolean Algebra with Presburger Arithmetic
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Hierarchical and Modular Reasoning in Complex Theories: The Case of Local Theory Extensions
FroCoS '07 Proceedings of the 6th international symposium on Frontiers of Combining Systems
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
Decision procedures for multisets with cardinality constraints
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Combining theories with shared set operations
FroCoS'09 Proceedings of the 7th international conference on Frontiers of combining systems
Building a calculus of data structures
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Collections, cardinalities, and relations
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Combining data structures with nonstably infinite theories using many-sorted logic
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
Carathéodory bounds for integer cones
Operations Research Letters
Decision procedures for automating termination proofs
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Communications of the ACM
Recursive proofs for inductive tree data-structures
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.02 |
Our goal is to identify families of relations that are useful for reasoning about software. We describe such families using decidable quantifier-free classes of logical constraints with a rich set of operations. A key challenge is to define such classes of constraints in a modular way, by combining multiple decidable classes. Working with quantifierfree combinations of constraints makes the combination agenda more realistic and the resulting logics more likely to be tractable than in the presence of quantifiers. Our approach to combination is based on reducing decidable fragments to a common class, Boolean Algebra with Presburger Arithmetic (BAPA). This logic was introduced by Feferman and Vaught in 1959 and can express properties of uninterpreted sets of elements, with set algebra operations and equicardinality relation (consequently, it can also express Presburger arithmetic constraints on cardinalities of sets). Combination by reduction to BAPA allows us to obtain decidable quantifierfree combinations of decidable logics that share BAPA operations. We use the term Calculus of Data Structures to denote a family of decidable constraints that reduce to BAPA. This class includes, for example, combinations of formulas in BAPA, weak monadic second-order logic of k-successors, two-variable logic with counting, and term algebras with certain homomorphisms. The approach of reduction to BAPA generalizes the Nelson-Oppen combination that forms the foundation of constraint solvers used in software verification. BAPA is convenient as a target for reductions because it admits quantifier elimination and its quantifier-free fragment is NP-complete. We describe a new member of the Calculus of Data Structures: a quantifier-free fragment that supports 1) boolean algebra of finite and infinite sets of real numbers, 2) linear arithmetic over real numbers, 3) formulas that can restrict chosen set or element variables to range over integers (providing, among others, the power of mixed integer arithmetic and sets of integers), 4) the cardinality operators, stating whether a given set has a given finite cardinality or is infinite, 5) infimum and supremum operators on sets. Among the applications of this logic are reasoning about the externally observable behavior of data structures such as sorted lists and priority queues, and specifying witness functions for the BAPA synthesis problem. We describe an abstract reduction to BAPA for our logic, proving that the satisfiability of the logic is in NP and that it can be combined with the other fragments of the Calculus of Data Structures.