Abstract
Refinement-based model checking is an approach to software verification: Starting with an abstract software model, the model is iteratively refined until it is precise enough to prove or refute the property of interest. A downside is that it typically takes several iterations until the necessary precision is reached, and thus, resources are spent on repeating work that has already been performed in previous iterations. We tackle this by introducing a concept for reusing information between refinement iterations in order to reduce the computational overhead. Our approach extends our previous work on three-valued abstraction (3VA) and bounded model checking (BMC). 3VA allows to translate a verification problem into a SAT-encoded three-valued BMC problem that can be checked via a SAT solver. While there was formerly no information sharing between refinement iterations, we now show that logic constraints learned by the solver in the current iteration are also valid in future iterations. Reusing such constraints enables to prune the search space of SAT which leads to a speed-up of the iterative approach. Since we previously used standard BMC, the technique was incomplete and could be only used for detecting property violations but not for proving their absence. Here we combine three-valued BMC with k-induction, which makes the approach complete for model checking safety properties.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Available at www.github.com/ssfm-up/TVMC/tree/unbounded.
References
Beyer, D., Dangl, M., Wendler, P.: Boosting k-induction with continuously-refined invariants. In: Kroening, D., Păsăreanu, C.S. (eds.) CAV 2015. LNCS, vol. 9206, pp. 622–640. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-21690-4_42
Biere, A., Heule, M., van Maaren, H., Walsh, T.: Conflict-driven clause learning sat solvers. In: Biere, A., Heule, M., van Maaren, H., Walsh, T. (eds.) Handbook of Satisfiability, pp. 131–153. IOS Press, Amsterdam (2009)
Bruns, G., Godefroid, P.: Model checking partial state spaces with 3-valued temporal logics. In: Halbwachs, N., Peled, D. (eds.) CAV 1999. LNCS, vol. 1633, pp. 274–287. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48683-6_25
Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 154–169. Springer, Heidelberg (2000). https://doi.org/10.1007/10722167_15
Dijkstra, E.W.: Solution of a problem in concurrent programming control. In: Broy, M., Denert, E. (eds.) Software Pioneers, pp. 347–350. Springer, Heidelberg (2002). https://doi.org/10.1007/978-3-642-59412-0_20
Donaldson, A.F., Haller, L., Kroening, D., Rümmer, P.: Software verification using k-induction. In: Yahav, E. (ed.) SAS 2011. LNCS, vol. 6887, pp. 351–368. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-23702-7_26
Een, N., Sörensson, N.: Temporal induction by incremental sat solving. Electron. Notes Theor. Comput. Sci. 89(4), 543–560 (2003). BMC 2003
Fitting, M.: Kleene’s 3-valued logics. Fund. Inf. 20(1–3), 113–131 (1994)
Franzén, A.: Using satisfiability modulo theories for inductive verification of lustre programs. ENTCS 144(1), 19–33 (2006)
Gadelha, M., Ismail, H., Cordeiro, L.: Handling loops in bounded model checking of C programs via k-induction. STTT 19(1), 97–114 (2017)
Günther, H., Weissenbacher, G.: Incremental bounded software model checking. In: SPIN 2014, pp. 40–47. ACM (2014)
Lahiri, S.K., Nieuwenhuis, R., Oliveras, A.: SMT techniques for fast predicate abstraction. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 424–437. Springer, Heidelberg (2006). https://doi.org/10.1007/11817963_39
Nadel, A., Ryvchin, V., Strichman, O.: Ultimately incremental SAT. In: Sinz, C., Egly, U. (eds.) SAT 2014. LNCS, vol. 8561, pp. 206–218. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-09284-3_16
Rocha, W., Rocha, H., Ismail, H., Cordeiro, L., Fischer, B.: DepthK: a k-induction verifier based on invariant inference for C programs. In: Legay, A., Margaria, T. (eds.) TACAS 2017. LNCS, vol. 10206, pp. 360–364. Springer, Heidelberg (2017). https://doi.org/10.1007/978-3-662-54580-5_23
Schrieb, J., Wehrheim, H., Wonisch, D.: Three-valued spotlight abstractions. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 106–122. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-05089-3_8
Sheeran, M., Singh, S., Stålmarck, G.: Checking safety properties using induction and a SAT-solver. In: Hunt, W.A., Johnson, S.D. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 127–144. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-40922-X_8
Timm, N., Gruner, S.: Three-valued bounded model checking with cause-guided abstraction refinement (2018, manuscript submitted for publication)
Timm, N., Gruner, S., Harvey, M.: A bounded model checker for three-valued abstractions of concurrent software systems. In: Ribeiro, L., Lecomte, T. (eds.) SBMF 2016. LNCS, vol. 10090, pp. 199–216. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-49815-7_12
Tseitin, G.S.: On the complexity of derivation in propositional calculus. In: Siekmann, J.H., Wrightson, G. (eds.) Automation of Reasoning, pp. 466–483. Springer, Heidelberg (1983). https://doi.org/10.1007/978-3-642-81955-1_28
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Timm, N., Gruner, S., Harvey, M. (2018). Constraint Reusing and k-Induction for Three-Valued Bounded Model Checking. In: Massoni, T., Mousavi, M. (eds) Formal Methods: Foundations and Applications. SBMF 2018. Lecture Notes in Computer Science(), vol 11254. Springer, Cham. https://doi.org/10.1007/978-3-030-03044-5_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-03044-5_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-03043-8
Online ISBN: 978-3-030-03044-5
eBook Packages: Computer ScienceComputer Science (R0)