conference paper
Building a calculus of data structures
LNCS
published
yes
Viktor
Kuncak
author
Ruzica
Piskac
author
Philippe
Suter
author
Thomas
Wies
author 447BFB88-F248-11E8-B48F-1D18A9856A87
GillesBarthe
editor
ManuelHermenegildo
editor
ToHe
department
VMCAI: Verification, Model Checking and Abstract Interpretation
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.
Springer2010Madrid, Spain
eng
10.1007/978-3-642-11319-2_6
594426 - 44
Kuncak V, Piskac R, Suter P, Wies T. Building a calculus of data structures. In: Barthe G, Hermenegildo M, eds. Vol 5944. Springer; 2010:26-44. doi:<a href="https://doi.org/10.1007/978-3-642-11319-2_6">10.1007/978-3-642-11319-2_6</a>
V. Kuncak, R. Piskac, P. Suter, and T. Wies, “Building a calculus of data structures,” presented at the VMCAI: Verification, Model Checking and Abstract Interpretation, Madrid, Spain, 2010, vol. 5944, pp. 26–44.
Kuncak, Viktor, et al. <i>Building a Calculus of Data Structures</i>. Edited by Gilles Barthe and Manuel Hermenegildo, vol. 5944, Springer, 2010, pp. 26–44, doi:<a href="https://doi.org/10.1007/978-3-642-11319-2_6">10.1007/978-3-642-11319-2_6</a>.
Kuncak, V., Piskac, R., Suter, P., & Wies, T. (2010). Building a calculus of data structures. In G. Barthe & M. Hermenegildo (Eds.) (Vol. 5944, pp. 26–44). Presented at the VMCAI: Verification, Model Checking and Abstract Interpretation, Madrid, Spain: Springer. <a href="https://doi.org/10.1007/978-3-642-11319-2_6">https://doi.org/10.1007/978-3-642-11319-2_6</a>
V. Kuncak, R. Piskac, P. Suter, T. Wies, in:, G. Barthe, M. Hermenegildo (Eds.), Springer, 2010, pp. 26–44.
Kuncak, Viktor, Ruzica Piskac, Philippe Suter, and Thomas Wies. “Building a Calculus of Data Structures.” edited by Gilles Barthe and Manuel Hermenegildo, 5944:26–44. Springer, 2010. <a href="https://doi.org/10.1007/978-3-642-11319-2_6">https://doi.org/10.1007/978-3-642-11319-2_6</a>.
Kuncak V, Piskac R, Suter P, Wies T. 2010. Building a calculus of data structures. VMCAI: Verification, Model Checking and Abstract Interpretation, LNCS, vol. 5944. 26–44.
43782018-12-11T12:08:33Z2019-08-02T12:38:27Z