Parameterisation of Three-Valued Abstractions
Three-valued abstraction is an established technique in software model checking. It proceeds by generating a state space model over the values true, false and unknown, where the latter value is used to represent the loss of information due to abstraction. Temporal logic properties can then be evaluated on such models. In case of an unknown result, the abstraction is iteratively refined. In this paper, we introduce parameterised three-valued model checking. In our new type of models, unknown parts can be either associated with the constant value unknown or with expressions over boolean parameters. Our parameterisation is an alternative way to state that the truth value of certain predicates or transitions is actually not known and that the checked property has to yield the same result under each possible parameter instantiation. A novel feature of our approach is that it allows for establishing logical connections between parameters: While unknown parts in pure three-valued models are never related to each other, our parameterisation approach enables to represent facts like ’a certain pair of transitions has unknown but complementary truth values’, or ’the value of a predicate is unknown but remains constant along all states of a certain path’. We demonstrate that such facts can be automatically derived from the system to be verified and that covering these facts in an abstract model can be crucial for the success and efficiency of checking temporal logic properties. Moreover, we introduce an automatic verification framework based on counterexample-guided abstraction refinement and parameterisation.
KeywordsModel Check Temporal Logic Linear Temporal Logic Concurrent System Kripke Structure
Unable to display preview. Download preview PDF.
- 2.Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of C programs. In: ACM SIGPLAN 2001, PLDI 2001, pp. 203–213. ACM, New York (2001)Google Scholar
- 5.Easterbrook, S.M., Chechik, M., Devereux, B., Gurfinkel, A., Lai, A.Y.C., Petrovykh, V., Tafliovich, A., Thompson-Walsh, C.: \(\chi \)Chek: a model checker for multi-valued reasoning. In: ICSE 2003, pp. 804–805 (2003)Google Scholar
- 8.Grumberg, O.: 2-valued and 3-valued abstraction-refinement in model checking. In: Logics and Languages for Reliability and Security, pp. 105–128. IOS Press, Incorporated (2010)Google Scholar
- 10.Katoen, J.P., Klink, D., Leucker, M., Wolf, V.: Three-valued abstraction for probabilistic systems. Logic and Algebraic Programming 81(4), 356–389 (2012). http://www.sciencedirect.com/science/article/pii/S1567832612000239 CrossRefMATHMathSciNetGoogle Scholar
- 14.Timm, N.: Three-Valued Abstraction and Heuristic-Guided Refinement for Verifying Concurrent Systems. Phd thesis, University of Paderborn (2013)Google Scholar
- 15.Timm, N.: Spotlight abstraction with shade clustering - automatic verification of parameterised systems. In: 8th International Symposium on Theoretical Aspects of Software Engineering, pp. 18–25. IEEE Computer Society (2014)Google Scholar