当前位置: X-MOL 学术Sci. Comput. Program. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Model checking safety and liveness via k-induction and witness refinement with constraint generation
Science of Computer Programming ( IF 1.3 ) Pub Date : 2020-08-14 , DOI: 10.1016/j.scico.2020.102532
Nils Timm , Stefan Gruner , Madoda Nxumalo , Josua Botha

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.



中文翻译:

通过k归纳检查模型的安全性和活动性,并通过约束生成对证人进行细化

在本文中,我们修改了基于约束的抽象细化技术,以检查并发软件系统的时间逻辑属性。我们的技术采用谓词抽象和基于SAT的三值有界模型检查。与经典的精炼技术不同,在传统的精炼技术中,使用谓词迭代地探索和精炼单个状态空间模型,我们的方法如下:我们使用粗略的全局状态空间模型,在其中检查感兴趣属性的抽象见证路径。对于每个检测到的抽象证人,我们构建一个局部模型,其状态空间仅限于证人的细化。在本地模型上,我们检查证人是真实的还是虚假的。我们通过虚假细分约束来消除全局模型中的虚假见证,这不会增加状态空间的复杂性。当可以检测到本地模型中的真实见证人,或者全局模型中不存在其他见证人时,我们的技术便完成并终止。

虽然我们的技术最初仅限于验证安全性,但在此我们将其扩展到验证活动性。为此,我们利用输入系统的状态记录转换,将活动性模型检查减少到安全检查。由于边界模型检查的性质,我们原始方法的另一个限制是它的不完整性。在这里,我们展示了如何基于抽象细化的有界模型检查可以与k归纳原理相结合,从而实现无界模型检查。关于边界,我们的方法是迭代的。扩展方法还使我们能够定义增强的概念以加强我们用来排除虚假行为并在绑定迭代之间重用约束的约束。我们证明,与传统的抽象提炼技术相比,我们的方法能够以减少的状态空间复杂度和更好的求解时间来完全验证安全性和活动性。

更新日期:2020-08-14
down
wechat
bug