Computing Predicate Abstractions by Integrating BDDs and SMT Solvers

The efficient computation of exact abstractions of a concrete program for a given set of predicates is key to the efficiency of Counter-Example Guided Abstraction-Refinement (CEGAR). Recent work propose the use of DPLL-based SMT solvers, modified into enumerators. This technique has been successfully applied in the realm of software, where a control flow graph is available to direct the exploration. However this approach shows some limitations when the number of models grows: in fact, it intrinsically relies on the enumeration of all the implicants, which basically requires the enumerations of all the disjuncts in the DNF of the abstraction. In this paper, we propose a new technique to improve the construction of abstractions. We complement SMT solvers with the use of BDDs, which enables us to avoid the model explosion. Essentially, we exploit the fact that BDDs are a DAG representations of the space that a DPLL-based enumerator treats as a tree. A preliminary experimental evaluation shows the potential of the approach.

[1]  Stephen Cole Kleene Mathematical Logic , 1967 .

[2]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[3]  Shuvendu K. Lahiri,et al.  Zapato: Automatic Theorem Proving for Predicate Abstraction Refinement , 2004, CAV.

[4]  Daniel Kroening,et al.  Interactive presentation: Image computation and predicate refinement for RTL verilog using word level proofs , 2007 .

[5]  Edmund M. Clarke,et al.  Counterexample-Guided Abstraction Refinement , 2000, CAV.

[6]  Alessandro Cimatti,et al.  Building Efficient Decision Procedures on Top of SAT Solvers , 2006, SFM.

[7]  Albert Oliveras,et al.  SMT Techniques for Fast Predicate Abstraction , 2006, CAV.

[8]  Sriram K. Rajamani,et al.  SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft , 2004, IFM.

[9]  Marco Bozzano,et al.  Efficient theory combination via boolean search , 2006, Inf. Comput..

[10]  Silvio Ranise,et al.  Light-weight theorem proving for debugging and verifying units of code , 2003, First International Conference onSoftware Engineering and Formal Methods, 2003.Proceedings..

[11]  Ilan Beer,et al.  Efficient Model Checking by Automated Ordering of Transition Relation Partitions , 1994, CAV.

[12]  Henrik Reif Andersen,et al.  Fully Symbolic Model Checking of Timed Systems using Difference Decision Diagrams , 2001, SMC@FLoC.

[13]  Shuvendu K. Lahiri,et al.  Predicate Abstraction via Symbolic Decision Procedures , 2005, Log. Methods Comput. Sci..

[14]  M. Ganai,et al.  Efficient SAT-based unbounded symbolic model checking using circuit cofactoring , 2004, ICCAD 2004.

[15]  Viktor Schuppan,et al.  Boolean Abstraction for Temporal Logic Satisfiability , 2007, CAV.

[16]  Daniel Kroening,et al.  Verification of SpecC using predicate abstraction , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[17]  Daniel Kroening,et al.  Word level predicate abstraction and refinement for verifying RTL Verilog , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[18]  Chao Wang,et al.  Abstraction refinement in symbolic model checking using satisfiability as the only decision procedure , 2005, International Journal on Software Tools for Technology Transfer.

[19]  Shuvendu K. Lahiri,et al.  A Symbolic Approach to Predicate Abstraction , 2003, CAV.

[20]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[21]  Thomas A. Henzinger,et al.  Software Verification with BLAST , 2003, SPIN.

[22]  M. P. Schuijers MASTER'S THESIS Integrating a BDD prover and a DPLL SAT solver for Abstract Data Types , 2006 .

[23]  Kenneth L. McMillan,et al.  Applying SAT Methods in Unbounded Symbolic Model Checking , 2002, CAV.

[24]  Daniel Kroening,et al.  Cogent: Accurate Theorem Proving for Program Verification , 2005, CAV.

[25]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[26]  Daniel Kroening,et al.  Predicate Abstraction of ANSI-C Programs Using SAT , 2004, Formal Methods Syst. Des..