Madhusudan, P., Parlato, Gennaro and Qiu, Xiaokang
(2011)
Decidable logics combining heap structures and data
At POPL '11. Proceedings of the 38th Annual ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, United States.
26  28 Jan 2011.
, .
(doi:10.1145/1925844.1926455).
Description/Abstract
We define a new logic, STRAND, that allows reasoning with heapmanipulating programs using deductive verification and SMT solvers. STRAND logic (“STRucture ANd Data” logic) formulas express constraints involving heap structures and the data they contain; they are defined over a class of pointerstructures R defined using MSOdefined relations over trees, and are of the form ?x?y.?(x, y), where ? is a monadic secondorder logic (MSO) formula with additional quantification that combines structural constraints as well as dataconstraints, but where the dataconstraints are only allowed to refer to x and y. The salient aspects of the logic are: (a) the logic is powerful, allowing existential and universal quantification over the nodes, and complex combinations of data and structural constraints; (b) checking Hoaretriples for linear blocks of statements with preconditions and postconditions expressed as Boolean combinations of existential and universal STRAND formulas reduces to satisfiability of a STRAND formula; (c) there are powerful decidable fragments of STRAND, one semantically defined and one syntactically defined, where the decision procedure works by combining the theory of MSO over trees and the quantifierfree theory of the underlying datalogic. We demonstrate the effectiveness and practicality of the logic by checking verification conditions generated in proving properties of several heapmanipulating programs, using a tool that combines an MSO decision procedure over trees (MONA) with an SMT solver for integer constraints (Z3).
Actions (login required)

View Item 