SMT techniques for fast predicate abstraction. (English)
Ball, Thomas (ed.) et al., Computer aided verification. 18th international conference, CAV 2006, Seattle, WA, USA, August 17‒20, 2006. Proceedings. Berlin: Springer (ISBN 3-540-37406-X/pbk). Lecture Notes in Computer Science 4144, 424-437 (2006).
Summary: Predicate abstraction is a technique for automatically extracting finite-state abstractions for systems with potentially infinite state space. The fundamental operation in predicate abstraction is to compute the best approximation of a Boolean formula $φ$ over a set of predicates $P$. In this work, we demonstrate the use for this operation of a decision procedure based on the DPLL($T$) framework for SAT Modulo Theories (SMT). The new algorithm is based on a careful generation of the set of all satisfying assignments over a set of predicates. It consistently outperforms previous methods by a factor of at least 20, on a diverse set of hardware and software verification benchmarks. We report detailed analysis of the results and the impact of a number of variations of the techniques. We also propose and evaluate a scheme for incremental refinement of approximations for predicate abstraction in the above framework.