Skip to main content
Log in

Objective/MC: A high-level model checking language

Formalization of the imperative core and translation into PRISM

  • Published:
Journal of Intelligent Information Systems Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. 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.

    Article  MathSciNet  MATH  Google Scholar 

  • 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.

    Article  MATH  Google Scholar 

  • Holzmann, G.J. (1997). The model checker SPIN. IEEE Transactions on Software Engineering, 23(5), 279.

    Article  Google Scholar 

  • 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.

    Article  MATH  Google Scholar 

  • 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.

    MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to P. Milazzo.

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.

figure n
figure o

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10844-017-0475-2

Keywords

Navigation