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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
The state-vector is the spin structure where each state is stored.
- 2.
Observe that f does not have to be abstracted due to execution traces of \(M^\alpha _u\) are execution traces of M.
- 3.
If the sequence is finite, we assume that the last state is infinitely repeated.
- 4.
never_claim is the promela process that implements the non-deterministic Büchi automata of the ltl formula.
- 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.
This is because spin transforms these properties into their corresponding negations.
References
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
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
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
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
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
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (2000)
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
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
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
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)
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
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)
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
Gallardo, M.M., Merino, P., Pimentel, E.: A generalized semantics of PROMELA for abstract model checking. Formal Aspects Comput. 16(3), 166–193 (2004)
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)
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
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
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
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
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
Holzmann, G.: The model checker SPIN. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997)
Holzmann, G.: The SPIN Model Checker : Primer and Reference Manual. Addison-Wesley Professional, Boston (2003)
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
Holzmann, G.J., Smith, M.H.: Software model checking: extracting verification models from source code. Softw. Test. Verification Reliab. 11(2), 65–79 (2001)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Berlin (1998)
Panizo, L., Gallardo, M.: An extension of Java PathFinder for hybrid systems. ACM SIGSOFT Softw. Eng. Notes 37(6), 1–5 (2012)
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this chapter
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)