A Specialization Calculus for Pruning Disjunctive Predicates to Support Verification
Separation logic-based abstraction mechanisms, enhanced with userdefined
inductive predicates, represent a powerful, expressive means of specifying
heap-based data structures with strong invariant properties. However, expressive
power comes at a cost: the manipulation of such logics typically requires the
unfolding of disjunctive predicates which may lead to expensive proof search.
We address this problem by proposing a predicate specialization technique that
allows efficient symbolic pruning of infeasible disjuncts inside each predicate instance.
Our technique is presented as a calculus whose derivations preserve the
satisfiability of formulas, while reducing the subsequent cost of their manipulation.
Initial experimental results have confirmed significant speed gains from the
deployment of predicate specialization. While specialization is a familiar technique
for code optimization, its use in program verification is new.
2011-cav-A Specialization Calculus for Pruning Disjunctive Predicates to Support Verification.pdf — PDF document, 211 kB (216403 bytes)