Abstract
Among model checking tools, the behaviour of a system is often formalized as a transition system with atomic propositions associated with states (Kripke structure). In current modeling languages, transitions are usually specified as updates of the system’s variables to be performed when certain conditions are satisfied. However, such a low-level representation makes the description of complex transformations difficult, in particular in the presence of structured data. We present Objective/MC, a high-level language with imperative semantics for modeling finite-state systems. The language features are selected with the aim of enabling the translation of models into compact transition systems, amenable to efficient verification via model checking. To this end, we have developed a compiler of our high-level language into the modeling language of the PRISM probabilistic model checker. One of the main characteristics of the language is that it makes a very different treatment of global and local variables. It is assumed that global variables are actually the variables that describe the state of the modeled system, whereas local variables are only used to ease the specification of the system’s internal mechanisms. In this paper, we give a complete formal definition of the language, its type system and static analyses, of the transformations to be performed at the level of the Control Flow Graph for the pruning of local variables, and of the PRISM code generation.
Similar content being viewed by others
Notes
The notation [n, m] indicates the integral range of values \(\{x \mid n \leq x \leq m\} \subset \mathbb {Z}\).
References
Abadi, M., & Cardelli, L. (2012). A theory of objects. Springer Science & Business Media.
Cardelli, L. (2004). Type systems Tucker, A.B. (Ed.) Computer science handbook, 2nd Edn. Chapman and Hall/CRC, chap. 97.
Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., & Tacchella, A. (2002). NuSMV 2: An opensource tool for symbolic model checking. In Computer aided verification (pp. 359–364). Springer.
Clarke, E., Kroening, D., & Lerda, F. (2004). A tool for checking ANSI-C programs. In Tools and Alg. for the Construction and Analysis of Systems (pp. 168–176). Springer.
Clavel, M., Durán, F., Eker, S., Lincoln, P., Martı-Oliet, N., Meseguer, J., & Quesada, J.F. (2002). Maude: specification and programming in rewriting logic. Theoretical Computer Science, 285(2), 187–243.
Habermaier, A., Leupolz, J., & Reif, W. (2016). Unified simulation, visualization, and formal analysis of safety-critical systems with. In International workshop on formal methods for industrial critical systems (pp. 150–167). Springer.
Havelund, K., & Pressburger, T. (2000). Model checking Java programs using Java Pathfinder. International Journal on Software Tools for Technology Transfer, 2(4), 366–381.
Holzmann, G.J. (1997). The model checker SPIN. IEEE Transactions on Software Engineering, 23(5), 279.
Kwiatkowska, M., Norman, G., & Parker, D. (2011). PRISM 4.0: Verification of probabilistic real-time systems. In Computer aided verification (pp. 585–591). Springer.
Larsen, K.G., Pettersson, P., & Yi, W. (1997). UPPAAL in a nutshell. International Journal on Software Tools for Technology Transfer (STTT), 1(1), 134–152.
ObjMC ver. 0.12 (2016). ObjMC: The Objective/MC compiler. http://www.di.unipi.it/msvbio/ObjMC/.
Pardini, G., & Milazzo, P. (2016). A high-level model checking language with compile-time pruning of local variables. In Software technologies: applications and foundations, lecture notes in computer science (Vol. 9946, pp. 67–82). Springer.
Sirjani, M., Movaghar, A., Shali, A., & De Boer, F.S. (2004). Modeling and verification of reactive systems using Rebeca. Fundamenta Informaticae, 63(4), 385–410.
Author information
Authors and Affiliations
Corresponding author
Appendix: A generated PRISM code
Appendix: A generated PRISM code
This is the PRISM code generated by the Objective/MC compiler on th e random walk example model shown in Fig. 6.
Rights and permissions
About this article
Cite this article
Milazzo, P., Pardini, G. Objective/MC: A high-level model checking language. J Intell Inf Syst 52, 533–571 (2019). https://doi.org/10.1007/s10844-017-0475-2
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10844-017-0475-2