Skip to main content

The Role of Abstraction in Model Checking

  • Chapter
  • First Online:
  • 301 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13160))

Abstract

The intimate relationship between model checking and abstract interpretation has been shown in a large number of relevant papers in literature. Maybe the use of abstract interpretation to reduce the well-known state space explosion problem in model checking was the first and most successful combination of these two techniques. However, this is not the only possible way both methods can collaborate to improve the software reliability. Along these last 20 years, our contributions in this area have been focussed on the practical application of abstract interpretation in the context of model checking tools. From our point of view, model checking tools such as spin can be hardly improved in terms of efficiency. Thus, we have concentrated on applying abstraction to completely reuse the underlying model checkers. We have applied our ideas to different modelling and programming languages, tools and real applications. In this paper, we summarize some of these contributions.

This work has been supported by the Spanish Ministry of Science, Innovation and Universities project RTI2018-099777-B-I00 and the European Union’s Horizon 2020 research and innovation programme under grant agreement No 815178 (5GENESIS).

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   109.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   139.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    The state-vector is the spin structure where each state is stored.

  2. 2.

    Observe that f does not have to be abstracted due to execution traces of \(M^\alpha _u\) are execution traces of M.

  3. 3.

    If the sequence is finite, we assume that the last state is infinitely repeated.

  4. 4.

    never_claim is the promela process that implements the non-deterministic Büchi automata of the ltl formula.

  5. 5.

    Note that this does not contradict the previous satisfaction result, since in this result we do not assume any particular algorithm to evaluate the property on the projected trace.

  6. 6.

    This is because spin transforms these properties into their corresponding negations.

References

  1. Adalid, D., Salmerón, A., Gallardo, M., Merino, P.: Using SPIN for automated debugging of infinite executions of java programs. J. Syst. Softw. 90, 61–75 (2014). https://doi.org/10.1016/j.jss.2013.10.056

    Article  Google Scholar 

  2. Bosnacki, D.: Enhancing state space reduction techniques for model checking. Ph.D. thesis, Department of Mathematics and Computer Science (2001). https://doi.org/10.6100/IR549628

  3. de la Cámara, P., Castro, J.R., Gallardo, M., Merino, P.: Verification support for ARINC-653-based avionics software. Softw. Test. Verif. Reliab. 21(4), 267–298 (2011). https://doi.org/10.1002/stvr.422

    Article  Google Scholar 

  4. de la Cámara, P., del Mar Gallardo, M., Merino, P.: Abstract matching for software model checking. In: Valmari, A. (ed.) SPIN 2006. LNCS, vol. 3925, pp. 182–200. Springer, Heidelberg (2006). https://doi.org/10.1007/11691617_11

    Chapter  MATH  Google Scholar 

  5. de la Cámara, P., Gallardo, M., Merino, P., Sanán, D.: Checking the reliability of socket based communication software. Int. J. Softw. Tools Technol. Transf. 11(5), 359–374 (2009). https://doi.org/10.1007/s10009-009-0112-7

    Article  Google Scholar 

  6. Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (2000)

    Google Scholar 

  7. Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Pasareanu, C.S., Robby, Zheng, H.: Bandera: extracting finite-state models from java source code. In: Ghezzi, C., Jazayeri, M., Wolf, A.L. (eds.) Proceedings of the 22nd International Conference on on Software Engineering, ICSE 2000, Limerick Ireland, 4–11 June 2000, pp. 439–448. ACM (2000). https://doi.org/10.1145/337180.337234

  8. Espada, A.R., Gallardo, M., Salmerón, A., Merino, P.: Performance analysis of spotify® for android with model-based testing. Mob. Inf. Syst. 2017, 67–77 (2017). https://doi.org/10.1155/2017/2012696

    Article  Google Scholar 

  9. Espada, A.R., Gallardo, M., Salmerón, A., Panizo, L., Merino, P.: A formal approach to automatically analyse extra-functional properties in mobile applications. Softw. Test. Verification Reliab. 29(4–5), e1699 (2019). https://doi.org/10.1002/stvr.1699

    Article  Google Scholar 

  10. Gallardo, M.M., Martínez, J., Merino, P., Pimentel, E.: aSPIN: a tool for abstract model checking. Softw. Tools Technol. Transf. 5(2–3), 165–184 (2004)

    Article  Google Scholar 

  11. Gallardo, M.M., Merino, P., Panizo, L., Linares, A.: Developing a decision support tool for dam management with SPIN. In: Alpuente, M., Cook, B., Joubert, C. (eds.) FMICS 2009. LNCS, vol. 5825, pp. 210–212. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-04570-7_20

    Chapter  Google Scholar 

  12. Gallardo, M.M., Merino, P., Panizo, L., Linares, A.: A practical use of model checking for synthesis: generating a dam controller for flood management. Softw. Pract. Exp. 41(11), 1329–1347 (2011)

    Article  Google Scholar 

  13. Gallardo, M.M., Merino, P., Pimentel, E.: Refinement of LTL formulas for abstract model checking. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol. 2477, pp. 395–410. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45789-5_28

    Chapter  Google Scholar 

  14. Gallardo, M.M., Merino, P., Pimentel, E.: A generalized semantics of PROMELA for abstract model checking. Formal Aspects Comput. 16(3), 166–193 (2004)

    Article  MATH  Google Scholar 

  15. Gallardo, M.M., Merino, P., Sanán, D.: Model checking dynamic memory allocation in operating systems. J. Autom. Reasoning 42(2–4), 229–264 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  16. Gallardo, M., Joubert, C., Merino, P., Sanán, D.: A model-extraction approach to verifying concurrent C programs with CADP. Sci. Comput. Program. 77(3), 375–392 (2012). https://doi.org/10.1016/j.scico.2011.10.003

    Article  Google Scholar 

  17. Gallardo, M.–M., Luque-Schempp, F., Merino-Gómez, P., Panizo, L.: How formal methods can contribute to 5G networks. In: ter Beek, M.H., Fantechi, A., Semini, L. (eds.) From Software Engineering to Formal Methods and Tools, and Back. LNCS, vol. 11865, pp. 548–571. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-30985-5_32

    Chapter  Google Scholar 

  18. Gallardo, M., Panizo, L.: Extending model checkers for hybrid system verification: the case study of SPIN. Softw. Test. Verif. Reliab. 24(6), 438–471 (2014). https://doi.org/10.1002/stvr.1505

    Article  Google Scholar 

  19. Gallardo, M., Sanán, D.: Verification of complex dynamic data tree with mu-calculus. Autom. Softw. Eng. 20(4), 569–612 (2013). https://doi.org/10.1007/s10515-012-0113-8

    Article  Google Scholar 

  20. Havelund, K., Pressburger, T.: Model checking JAVA programs using JAVA pathfinder. Int. J. Softw. Tools Technol. Transf. 2(4), 366–381 (2000). https://doi.org/10.1007/s100090050043

    Article  MATH  Google Scholar 

  21. Holzmann, G.: The model checker SPIN. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997)

    Article  Google Scholar 

  22. Holzmann, G.: The SPIN Model Checker : Primer and Reference Manual. Addison-Wesley Professional, Boston (2003)

    Google Scholar 

  23. Holzmann, G. J., Joshi, R.: Model-driven software verification. In: Model Checking Software: 11th International SPIN Workshop, Barcelona, Spain, 1-3 April 2004. Proceedings 11, pp. 76-91. Springer, Berlin (2004). https://doi.org/10.1007/b96721

  24. Holzmann, G.J., Smith, M.H.: Software model checking: extracting verification models from source code. Softw. Test. Verification Reliab. 11(2), 65–79 (2001)

    Article  Google Scholar 

  25. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Berlin (1998)

    MATH  Google Scholar 

  26. Panizo, L., Gallardo, M.: An extension of Java PathFinder for hybrid systems. ACM SIGSOFT Softw. Eng. Notes 37(6), 1–5 (2012)

    Article  Google Scholar 

  27. Salmerón, A., Merino, P.: Integrating model checking and simulation for protocol optimization. SIMULATION 91(1), 3–25 (2015). https://doi.org/10.1177/0037549714557054

    Article  Google Scholar 

Download references

Acknowledgements

The three of us are very honoured to have had the opportunity to participate in this volume devoted to celebrating the Manuel Hermenegildo’s achievements in research. In particular, the first author is very grateful for his advice early in her research career and for introducing her to the exciting field of abstract interpretation.

Finally, we want to recognize the contributions of former members of morse team, specially to Jesús Martínez, David Sanán, Alberto Salmerón, Pedro de la Cámara, Christophe Joubert, Ana Rosario Espada and Damián Adalid.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to María-del-Mar Gallardo .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Gallardo, MdM., Merino, P., Panizo, L. (2023). The Role of Abstraction in Model Checking. In: Lopez-Garcia, P., Gallagher, J.P., Giacobazzi, R. (eds) Analysis, Verification and Transformation for Declarative Programming and Intelligent Systems. Lecture Notes in Computer Science, vol 13160. Springer, Cham. https://doi.org/10.1007/978-3-031-31476-6_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-31476-6_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-31475-9

  • Online ISBN: 978-3-031-31476-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics