Proof assisted bounded and unbounded symbolic model checking of software and system models

https://doi.org/10.1016/j.scico.2017.08.013Get rights and content
Under an Elsevier user license
open archive

Highlights

  • We implemented bounded model checking, k-Induction and IC3 for B and Event-B.

  • We show how to use static information from proof attempts to improve performance.

  • We benchmark against ProB's explicit state model checker.

  • We discuss applicability to other formalisms such as TLA+ and Z.

Abstract

We have implemented various symbolic model checking algorithms, such as BMC, k-Induction and IC3 for B, Event-B and other modeling languages. The high-level nature of software models accounts for complicated constraints arising in these symbolic analysis techniques. In this article we suggest using static information stemming from proof obligations to simplify occurring constraints. We show how to include proof information in the aforementioned algorithms. Using different benchmarks we compare explicit state to symbolic model checking as well as techniques with and without proof assistance. In particular for models with large branching factor, e.g., due to complicated data values being manipulated, the symbolic techniques fare much better than explicit state model checking. The inclusion of proof information results in further performance improvements.

Keywords

B-method
Event-B
Software model
Proof
Symbolic model checking

Cited by (0)