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]  Daniel Kroening,et al.  Predicate Abstraction of ANSI-C Programs Using SAT , 2004, Formal Methods Syst. Des..

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

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

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

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

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

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

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

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

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

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

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

[13]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

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

[15]  Assaf Schuster,et al.  Hybrid BDD and All-SAT Method for Model Checking , 2009, Languages: From Formal to Natural.

[16]  Daniel Kroening,et al.  Image Computation and Predicate Refinement for RTL Verilog using Word Level Proofs , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

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

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

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

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

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

[22]  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.

[23]  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..

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