Title :
Combining Predicate and Numeric Abstraction for Software Model Checking
Author :
Gurfinkel, Arie ; Chaki, Sagar
Author_Institution :
Software Eng. Inst., Carnegie Mellon Univ., Pittsburgh, PA
Abstract :
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 prepositional reasoning) with data structures 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.
Keywords :
C language; data structures; program diagnostics; program verification; reachability analysis; C programs; NumPredDom; data structures; numeric abstraction; predicate abstraction; prepositional reasoning; reachability analysis; software analysis; software model checking; Arithmetic; Artificial intelligence; Automatic control; Boolean functions; Data structures; Reachability analysis; Software engineering; Switches; Transfer functions; Transformers;
Conference_Titel :
Formal Methods in Computer-Aided Design, 2008. FMCAD '08
Conference_Location :
Portland, OR
Print_ISBN :
978-1-4244-2735-2
Electronic_ISBN :
978-1-4244-2736-9
DOI :
10.1109/FMCAD.2008.ECP.21