Hybrid CEGAR: combining variable hiding and predicate abstraction

Variable hiding and predicate abstraction are two popular abstraction methods to obtain simplified models for model checking. Although both methods have been used successfully in practice, no attempt has been made to combine them in counterexample guided abstraction refinement (CEGAR). In this paper, we propose a hybrid abstraction method that allows both visible variables and predicates to take advantages of their relative strengths. We use refinement based on weakest preconditions to add new predicates, and under certain conditions trade in the predicates for visible variables in the abstract model. We also present heuristics for improving the overall performance, based on static analysis to identify useful candidates for visible variables, and use of lazy constraints to find more effective unsatisfiable cores for refinement. We have implemented the proposed hybrid CEGAR procedure. Our experiments on public benchmarks show that the new abstraction method frequently outperforms the better of the two existing abstraction methods.

[1]  Ofer Strichman,et al.  SAT Based Abstraction-Refinement Using ILP and Machine Learning Techniques , 2002, CAV.

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

[3]  Helmut Veith,et al.  SAT Based Predicate Abstraction for Hardware Verification , 2003, SAT.

[4]  Robert P. Kurshan,et al.  Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach , 2014 .

[5]  Aarti Gupta,et al.  Localization and Register Sharing for Predicate Abstraction , 2005, TACAS.

[6]  David L. Dill,et al.  Successive approximation of abstract transition relations , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[7]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

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

[9]  Chao Wang,et al.  Improving Ariadne's Bundle by Following Multiple Threads in Abstraction Refinement , 2003, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

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

[11]  Kenneth L. McMillan,et al.  A Hybrid of Counterexample-Based and Proof-Based Abstraction , 2004, FMCAD.

[12]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

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

[14]  Andreas Podelski,et al.  Boolean and Cartesian abstraction for model checking C programs , 2001, International Journal on Software Tools for Technology Transfer.

[15]  Daniel Kroening,et al.  VCEGAR: Verilog CounterExample Guided Abstraction Refinement , 2007, TACAS.

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

[17]  Aarti Gupta,et al.  Lazy constraints and SAT heuristics for proof-based abstraction , 2005, 18th International Conference on VLSI Design held jointly with 4th International Conference on Embedded Systems Design.

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

[19]  Michael S. Hsiao,et al.  Dynamic abstraction using SAT-based BMC , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[20]  Zijiang Yang,et al.  Iterative Abstraction using SAT-based BMC with Proof Analysis , 2003, ICCAD 2003.

[21]  Edmund M. Clarke,et al.  Model checking, abstraction, and compositional verification , 1993 .

[22]  Kenneth L. McMillan,et al.  Automatic Abstraction without Counterexamples , 2003, TACAS.