Model checking safety and liveness via k-induction and witness refinement with constraint generation

被引:6
作者
Timm, Nils [1 ]
Gruner, Stefan [1 ]
Nxumalo, Madoda [1 ]
Botha, Josua [1 ]
机构
[1] Univ Pretoria, Dept Comp Sci, Pretoria, South Africa
关键词
Three-valued abstraction; SAT-based bounded model checking; Constraint generation; k-induction; Liveness; ABSTRACTION;
D O I
10.1016/j.scico.2020.102532
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In this article, we revise our constraint-based abstraction refinement technique for checking temporal logic properties of concurrent software systems. Our technique employs predicate abstraction and SAT-based three-valued bounded model checking. In contrast to classical refinement techniques where a single state space model is iteratively explored and refined with predicates, our approach is as follows: We use a coarsely-abstracted global state space model where we check for abstract witness paths for the property of interest. For each detected abstract witness we construct a local model whose state space is restricted to refinements of the witness only. On the local models we check whether the witness is real or spurious. We eliminate spurious witnesses in the global model via spurious segment constraints, which do not increase the state space complexity. Our technique is complete and terminates when a real witness in a local model can be detected, or no more witnesses in the global model exist. While our technique was originally restricted to the verification of safety properties, we extend it here to the verification of liveness properties. For this, we make use of the state recording translation of the input system, which reduces liveness model checking to safety checking. Another restriction of our original approach was its incompleteness due to the nature of bounded model checking. Here we show how abstraction refinement-based bounded model checking can be combined with the k-induction principle, which enables unbounded model checking. Our approach is iterative with regard to the bound. The extended approach also allows us to define enhanced concepts for strengthening the constraints that we use to rule out spurious behaviour and for reusing constraints between bound iterations. We demonstrate that our approach enables the complete verification of safety and liveness properties with a reduced state space complexity and a better solving time in comparison to classical abstraction refinement techniques. (C) 2020 Elsevier B.V. All rights reserved.
引用
收藏
页数:28
相关论文
共 48 条
[1]  
[Anonymous], 2012, LECT NOTES COMPUT SC
[2]  
[Anonymous], 1999, LNCS
[3]   On-the-Fly Decomposition of Specifications in Software Model Checking [J].
Apel, Sven ;
Beyer, Dirk ;
Mordan, Vitaly ;
Mutilin, Vadim ;
Stahlbauer, Andreas .
FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, :349-361
[4]  
Bernasconi Anna, 2017, Software Engineering and Formal Methods. 15th International Conference, SEFM 2017. Proceedings: Lecture Notes in Computer Society (LNCS 10469), P54, DOI 10.1007/978-3-319-66197-1_4
[5]  
Beyer D., 2012, P FSE, DOI DOI 10.1145/2393596.2393664
[6]  
Biere A, 1999, LECT NOTES COMPUT SC, V1579, P193
[7]  
Biere A., 2002, ELECT NOTES THEOR CO, V66, P160, DOI [DOI 10.1016/S1571-0661(04)80410-9, 10 . 1016/S1571-0661(04)80410-9, 10.1016/S1571-0661(04)80410-9]
[8]   Bounded model checking [J].
Biere, Armin .
Frontiers in Artificial Intelligence and Applications, 2009, 185 (01) :457-481
[9]  
Caridroit T, 2017, AAAI CONF ARTIF INTE, P3864
[10]   Control Flow-Guided SMT Solving for Program Verification [J].
Chen, Jianhui ;
He, Fei .
PROCEEDINGS OF THE 2018 33RD IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMTED SOFTWARE ENGINEERING (ASE' 18), 2018, :351-361