We propose SplInter, a new technique for proving safety properties of heap-manipulating programs that marries a new separation logic–based analysis for heap reasoning with an interpolation-based technique for refining and strengthening heap shape invariants with data invariants. SplInter is property-directed, precise, and produces counterexample traces in case a property does not hold. Using the novel notion of spatial interpolants modulo theories, SplInter can infer complex invariants over general recursive predicates, e.g., of the form “all data elements in a linked list are even” or “a binary tree is sorted”. Furthermore, we treat interpolation as a black box, which gives us the freedom to encode data manipulation in whatever theory is suitable for the program at hand (e.g., bitvectors, arrays, or linear arithmetic), so that our technique immediately benefits from any future advances in SMT solving and interpolation.
Thu 16 AprDisplayed time zone: Azores change
10:30 - 12:30 | |||
10:30 30mTalk | A Semantics for Propositions as Sessions ESOP | ||
11:00 30mTalk | Composite Replicated Data Types ESOP | ||
11:30 30mTalk | Relaxed Stratification: A New Approach to Practical Complete Predicate Refinement ESOP | ||
12:00 30mTalk | Spatial Interpolants ESOP Aws Albarghouthi University of Wisconsin - Madison, Josh Berdine Microsoft Research, Byron Cook Microsoft Research, Zachary Kincaid University of Toronto |