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 |