Combining Predicate and Numeric Abstraction for Software Model Checking

Arie Gurfinkel, Sagar Chaki
2008 2008 Formal Methods in Computer-Aided Design  
Predicate (PA) and Numeric (NA) abstractions are the two principal techniques for software analysis. In this paper, we develop an approach to couple the two techniques tightly into a unified framework via a single abstract domain called NUMPREDDOM. In particular, we develop and evaluate four data structures that implement NUMPREDDOM but differ in their expressivity and internal representation and algorithms. All our data structures combine BDDs (for efficient propositional reasoning) with data
more » ... tructures for representing numerical constraints. Our technique is distinguished by its support for complex transfer functions that allow two way interaction between predicate and numeric information during state transformation. We have implemented a general framework for reachability analysis of C programs on top of our four data structures. Our experiments on non-trivial examples show that our proposed combination of PA and NA is more powerful and more efficient than either technique alone.
doi:10.1109/fmcad.2008.ecp.21 dblp:conf/fmcad/GurfinkelC08 fatcat:2ksd5xgin5estp5ugfvgwddqhu