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

Show simple item record

dc.contributor.author Timm, Nils
dc.contributor.author Gruner, Stefan
dc.contributor.author Nxumalo, Madoda
dc.contributor.author Botha, Josua
dc.date.accessioned 2021-09-21T06:17:17Z
dc.date.issued 2020-12
dc.description.abstract 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. en_ZA
dc.description.department Computer Science en_ZA
dc.description.librarian hj2021 en_ZA
dc.description.uri http://www.elsevier.com/locate/scico en_ZA
dc.identifier.citation Timm, N., Gruner, S., Nxumalo, M. & Botha, J. 2020, 'Model checking safety and liveness via k-induction and witness refinement with constraint generation', Science of Computer Programming, vol. 200, art. 102532, pp. 1-28. en_ZA
dc.identifier.issn 0167-6423 (print)
dc.identifier.issn 1872-7964 (online)
dc.identifier.other 10.1016/j.scico.2020.102532
dc.identifier.uri http://hdl.handle.net/2263/81921
dc.language.iso en en_ZA
dc.publisher Elsevier en_ZA
dc.rights © 2020 Elsevier B.V. All rights reserved. Notice : this is the author’s version of a work that was accepted for publication in Science of Computer Programming. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. A definitive version was subsequently published in Science of Computer Programming, vol. 200, art. 102532, pp. 1-28, 2020. doi : 10.1016/j.scico.2020.102532. en_ZA
dc.subject Three-valued abstraction (3VA) en_ZA
dc.subject SAT-based bounded model checking en_ZA
dc.subject Constraint generation en_ZA
dc.subject K-induction en_ZA
dc.subject Liveness en_ZA
dc.title Model checking safety and liveness via k-induction and witness refinement with constraint generation en_ZA
dc.type Preprint Article en_ZA


Files in this item

This item appears in the following Collection(s)

Show simple item record