Making CEGAR More Efficient in Software Model Checking

被引:21
作者
Tian, Cong [1 ]
Duan, Zhenhua [1 ]
Duan, Zhao [1 ]
机构
[1] Xidian Univ, ICTT & ISN Lab, Xian 710071, Peoples R China
关键词
Model checking; formal verification; abstraction; refinement; CEGAR; GUIDED ABSTRACTION REFINEMENT; AUTOMATED ABSTRACTION; COUNTEREXAMPLE; VERIFICATION;
D O I
10.1109/TSE.2014.2357442
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Counter-example guided abstraction refinement (CEGAR) is widely used in software model checking. With an abstract model, the state space is largely reduced, however, a counterexample found in such a model that does not satisfy the desired property may not exist in the concrete model. Therefore, how to check whether a reported counterexample is spurious is a key problem in the abstraction-refinement loop. Next, in the case that a spurious counterexample is found, the abstract model needs to be further refined where an NP-hard state separation problem is often involved. Thus, how to refine the abstract model efficiently has attracted a great attention in the past years. In this paper, by re-analyzing spurious counterexamples, a new formal definition of spurious paths is given. Based on it, efficient algorithms for detecting spurious counterexamples are presented. By the new algorithms, when dealing with infinite counterexamples, the finite prefix to be analyzed will be polynomially shorter than the one dealt with by the existing algorithms. Moreover, in practical terms, the new algorithms can naturally be parallelized that enables multi-core processors contributes more in spurious counterexample checking. In addition, a novel refining approach by adding extra Boolean variables to the abstract model is presented. With this approach, not only the NP-hard state separation problem can be avoided, but also a smaller refined abstract model can be obtained. Experimental results show that the new algorithms perform well in practice.
引用
收藏
页码:1206 / 1223
页数:18
相关论文
共 28 条
[1]  
[Anonymous], 1981, Lecture Notes in Computer Science, DOI DOI 10.1007/BFB0025774
[2]  
[Anonymous], 1993, Symbolic Model Checking
[3]  
Ball T., 2010, 2010 Formal Methods in Computer-Aided Design (FMCAD 2010), P35
[4]   Automatic predicate abstraction of C programs [J].
Ball, T ;
Millstein, T ;
Majumdar, R ;
Rajamani, SK .
ACM SIGPLAN NOTICES, 2001, 36 (05) :203-213
[5]  
Beyer Dirk, 2011, Computer Aided Verification. Proceedings 23rd International Conference, CAV 2011, P184, DOI 10.1007/978-3-642-22110-1_16
[6]   The software model checker BlastApplications to software engineering [J].
Dirk Beyer ;
Thomas A. Henzinger ;
Ranjit Jhala ;
Rupak Majumdar .
International Journal on Software Tools for Technology Transfer, 2007, 9 (5-6) :505-525
[7]  
Beyer Dirk, 2009, Proceedings of the 2009 9th International Conference Formal Methods in Computer-Aided Design (FMCAD), P25, DOI 10.1109/FMCAD.2009.5351147
[8]  
Biere A., 2003, ADV COMPUTERS, V58
[9]  
Chauhan P, 2002, LECT NOTES COMPUT SC, V2517, P33
[10]   Counterexample-guided abstraction refinement for symbolic model checking [J].
Clarke, E ;
Grumberg, O ;
Jha, S ;
Lu, Y ;
Veith, H .
JOURNAL OF THE ACM, 2003, 50 (05) :752-794