基于懒惰切片的状态空间搜索方法
Lazy Slicing for State-Space Exploration
-
摘要: 基于CEGAR的切片技术是一种重要的状态空间缩减技术。然而该方法在发现伪反例的时候会重复搜索前一阶段已经处理过的状态空间。受懒惰抽象技术的启发,本文提出一种基于懒惰切片的状态空间搜索方法用于消除基于CEGAR的切片方法引入的重复计算。懒惰切片以on-the-fly方式对状态空间进行搜索,且搜索过程仅以消除伪反例所需的精度展开状态空间。此外,懒惰切片能够通过具体化一个路径片段而不是整条路径实现伪反例判定,显著提高了伪反例判定的效率。本文还提出了一种改进的过近似切片计算方法,该方法能够构建更为精确的过近似切片。最后对懒惰切片算法的正确性及可终止性进行了讨论,并实现了一个原型模型检测器用于验证安全性性质。实验结果表明:和基于CEGAR的切片方法相比,懒惰切片能够处理更大规模的系统。Abstract: CEGAR (Counterexample-guided abstraction refinement)-based slicing is one of the most important techniques in reducing the state space in model checking. However, CEGAR-based slicing repeatedly explores the state space handled previously in case a spurious counterexample is found. Inspired by lazy abstraction, we introduce the concept of lazy slicing which eliminates this repeated computation. Lazy slicing is done on-the-fly, and only up to the precision necessary to rule out spurious counterexamples. It identifies a spurious counterexample by concretizing a path fragment other than the full path, which reduces the cost of spurious counterexample decision significantly. Besides, we present an improved over-approximate slicing method to build a more precise slice model. We also provide the proof of the correctness and the termination of lazy slicing, and implement a prototype model checker to verify safety property. Experimental results show that lazy slicing scales to larger systems than CEGAR-based slicing methods.