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 Apr Times are displayed in time zone: (GMT) Azores change
|10:30 - 11:00|
|11:00 - 11:30|
|11:30 - 12:00|
|12:00 - 12:30|