Skip to main content
Log in

αSPIN: A tool for abstract model checking

  • Special section on formal methods for industrial critical systems
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

Abstraction methods have become one of the most interesting topics in the automatic verification of software systems because they can reduce the state space to be explored and allow model checking of more complex systems. Nevertheless, there is a lack of tools actually supporting this technique. One direction for abstracting a system is to transform its formal description (its model) into a simpler version specified in the same language, thus skipping the construction of a specific (model checking) tool for the abstract model. The abstraction of the model should be followed by the abstraction of the temporal formulas to be checked. This paper presents αspin, a tool for the integration of abstraction (for models and formulas) into the well-known model checker spin. We present the theoretical results supporting the implementation together with a case study.

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.

Similar content being viewed by others

References

  1. Ball T, Podelski A, Rajamani S (2001) Boolean and Cartesian abstractions for model checking C programs. In: Proceedings of TACAS01, Genova, Italy, 2–6 April 2001. Lecture notes in computer science, vol 2031. Springer, Berlin Heidelberg New York, pp 268–283

  2. Ball T, Rajamani SK (2002) The SLAM project: debugging system software via static analysis. In: Proceedings of POPL 2002, Portland, OR, 16–18 January 2002, pp 1–3

  3. Brat G, Havelund K, Park S, Visser W (2000) Java PathFinder – a second generation of a Java model checker. In: Proceedings of the Post-CAV’00 workshop on advances in verification, Chicago, 20 July 2000

  4. Clarke EM, Emerson EA, Sistla AP (1986) Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM TOPLAS 8(2):244–263

    Article  Google Scholar 

  5. Clarke EM, Grumberg O, Long DE (1994) Model checking and abstraction. ACM TOPLAS 16(5):1512–1542

    Article  Google Scholar 

  6. Clarke EM, Grumberg O, Jha S, Lu Y, Veith H (2000) Counterexample-guided abstraction refinement. In: Proceedings of the 12th International Conference CAV’00, Chicago, 15–19 July 2000. Lecture notes in computer science, vol 1855. Springer, Berlin Heidelberg New York, pp 154–169

  7. Clarke E, Grumberg O, Peled D (2000) Model checking. MIT Press, Cambridge, MA

  8. Cleaveland R, Iyer SP, Yankelevich D (1995) Optimality and abstraction in model checking. In: Mycroft A (ed) Proceedings of the symposium on static analysis, Glasgow, 25–27 September 1995. Lecture notes in computer science, vol 983. Springer, Berlin Heidelberg New York, pp 51–63

  9. Cousot P, Cousot R (1977) Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference record of the 4th ACM symposium on POPL, Los Angeles, January 1977, pp 238–252

  10. Dams D, Gerth R, Grumberg O (1977) Abstract interpretation of reactive systems. ACM TOPLAS 19(2):253–291

    Article  Google Scholar 

  11. Dams D (2002) Abstraction in software model checking: principles and practice. In: Proceedings of the 9th international SPIN workshop: model checking software, Grenoble, France, 11–13 April 2002. Lecture notes in computer science, vol 2318. Springer, Berlin Heidelberg New York, pp 14–21

  12. Dams D, Hesse W, Holzmann GJ (2002) Abstracting C with abC. In: Proceedings of the 14th international conference CAV’02, Copenhagen, 27–31 July 2002. Lecture notes in computer science, vol 2404. Springer, Berlin Heidelberg New York, pp 515–520

  13. Duval G, Cattel T (1997) From architecture down to implementation of safe process control applications: design, verification and simulation. In: Proceedings of the 13th annual Hawaii international conference on system sciences (HICSS 30), Honolulu, 3–6 January 1997

  14. Dwyer M, Hatcliff J, Joehanes R, Laubach S, Pasareanu C, Visser W, Zheng H (2001) Tool-supported program abstraction for finite-state verification. In: Proceedings of ICSE 2001, Toronto, 12–19 May 2001, pp 177–187

  15. Fersman E, Jonsson B (2000) Abstraction of communication channels in Promela: a case study. In: Proceedings of the 3rd international SPIN workshop, Stanford, CA, 31 August–1 September 2000, pp 187–204

  16. Gallardo MM, Merino P (1999) A framework for automatic construction of abstract promela models. In: Theoretical and practical aspects of spin model checking. Lecture notes in computer science, vol 1680. Springer, Berlin Heidelberg New York, pp 184–199

  17. Gallardo MM, Merino P (2000) A practical method to integrate abstractions into SDL and MSC based tools. In: Proceedings of the 5th international ERCIM workshop on formal methods for industrial critical systems, Berlin, 3–4 April 2000. GMD Report 91, pp 84–89

  18. Gallardo MM, Merino P, Pimentel E (2002) Verifying abstract LTL properties on concurrent systems. In: Proceedings of the 6th world conference on integrated design & process technology, Pasadena, CA, 23–28 June 2002

  19. Gallardo MM, Martinez J, Merino P, Rosales E (2002) Using XML to implement abstraction for model checking. In: Proceedings of the ACM symposium on applied computing, Madrid, 10–12 March 2002, pp 1021–1025

  20. Gallardo MM, Merino P, Pimentel E (2002) Debugging UML designs with model checking. J Object Technol 1(2):101–117

    Article  Google Scholar 

  21. Gallardo MM, Merino P, Pimentel E (2002) Comparing under and over-approximations of LTL properties for model checking. In: Proceedings of the 11h international workshop on functional and (constraint) logic programming, Grado, Italy, 20–22 June 2002. Electronic notes in theoretical computer science, vol 76. Elsevier, Amsterdam. Available at: http://www.elsevier.nl/gej-ng/31/29/23/show/Products/notes/index.htt

  22. Gallardo MM, Martínez J, Merino P, Pimentel E (2002) A tool for abstraction in model checking. In: Proceedings of the 7th international workshop on formal methods for industrial critical systems, Málaga, 12-13 July 2002. Electronic notes in theoretical computer science, 66(2). Elsevier, Amsterdam. Available at: http://www.elsevier.nl/gej-ng/31/29/23/show/Products/notes/index.htt

  23. Gallardo MM, Merino P, Pimentel E (2002) Refinement of LTL formulas for abstract model checking. In: Proceedings of the 9th international static analysis symposium (SAS ’02), Madrid, 17–20 September 2002. Lecture notes in computer science, vol 2477. Springer, Berlin Heidelberg New York, pp 395–410

  24. Gerth R, Peled D, Vardi M, Wolper P (1995) Simple on-the-fly automatic verification of linear temporal logic. In: Proceedings of the 15th workshop on protocol specification, testing, and verification (PSTV95), Warsaw, Poland, 13–16 June 1995, pp 3–18

  25. Giacobazzi R, Ranzato F, Scozzari F (2000) Making abstract interpretation complete. J ACM 47(2):361–416

    Article  MathSciNet  Google Scholar 

  26. Giacobazzi R, Quintarelli E (2001) Incompleteness, counterexamples and refinement in abstract model-checking. In: Proceedings of the 8th international static analysis symposium (SAS’01), Paris, 16–18 July 2001. Lecture notes in computer science, vol 2126. Springer, Berlin Heidelberg New York, pp 356–373

  27. Gondow K, Kawashima H (2002) Towards ANSI C program slicing using XML. In: Proceedings of the 2nd workshop on language descriptions, tools and applications (LDTA 2002), Grenoble, France, 13 April 2002. Electronic notes in theoretical computer science, vol 65, no 3. Elsevier, Amsterdam. Available at: http://www.informatik.uni-trier.de/∼ley/db/journals/entcs/entcs65.html

  28. Graf S (1994) Verification of a distributed cache memory by using abstractions. In: Proceedings of the 6th international conference CAV’94, Stanford, CA, 21–23 June 1994. Lecture notes in computer science, vol 818. Springer, Berlin Heidelberg New York, pp 207–219

  29. Graf S, Saïdi H (1997) Construction of abstract state graphs with PVS. In: Proceedings of the 9th international conference CAV’97, Haifa, Israel, 22–25 June 1997. Lecture notes in computer science, vol 1254. Springer, Berlin Heidelberg New York, pp 72–83

  30. Hatcliff J, Dwyer M, Pasareanu C, Robby (2003) Foundations of the Bandera abstraction tools. The essence of compution. Lecture notes in computer science, vol 2566. Springer, Berlin Heidelberg New York, pp 172–203

  31. Havelund K, Pressburger T (2000) Model checking Java programs using Java Path Finder. Int J Softw Tools Technol Transfer 2(4):366–381

    Article  Google Scholar 

  32. Havelund K, Visser W (2002) Program model checking as a new trend. Int J Softw Tools Technol Transfer 4:8–20

    Article  Google Scholar 

  33. Holzmann GJ (1991) Design and validation of computer protocols. Prentice-Hall, Upper Saddle River, NJ

  34. Holzmann GJ (1997) The model checker SPIN. IEEE Trans Softw Eng 23(5):279–295

    Article  Google Scholar 

  35. Holzmann GJ (1999) The engineering of a model checker: the Gnu i-Protocol case study revisited. In: Theoretical and practical aspects of spin model checking, Lecture notes in computer science, vol 1680. Springer, Berlin Heidelberg New York, pp 156–168

  36. Holzmann GJ, Najm E, Serhrouchni A (2000) SPIN model checking: an introduction. Int J Softw Tools Technol Transfer 2:321–327

    Article  Google Scholar 

  37. Holzmann GJ, Smith MH (1999) A practical method for the verification of event driven systems. In: Proceedings of 21st International Conference on Software Engineering ICSE99, Los Angeles, 12–22 May 1999, pp 597–608

  38. Kelb P (1994) Model checking and abstraction: a framework preserving both truth and failure information. Tecnical Report OFFIS, University of Oldenburg, Germany

    Google Scholar 

  39. Kesten Y, Pnueli A (2000) Verification by augmented finitary abstraction. Inf Comput (Special Issue on Compositionality 163:203–243

    Google Scholar 

  40. Kesten Y, Pnueli A (2000) Control and data abstraction: the cornerstones of practical formal verification. Int J Softw Tools Technol Transfer 2:328–342

    Article  Google Scholar 

  41. Loiseaux C, Graf S, Sifakis J, Bouajjani A, Bensalem S (1995) Property preserving abstractions for the verification of concurrent systems. Formal Meth Sys Des 6:1–35

    Google Scholar 

  42. Pasareanu CS, Dwyer MB, Visser W (2001) Finding feasible counter-examples when model checking abstracted Java programs. In: Proceedings of the 7th international conference on tools and algorithms for the construction and analysis of systems, (TACAS 2001) Genova, 2–6 April 2001. Lecture notes in computer science, vol 2031, Springer, Berlin Heidelberg New York, pp 284–298

  43. Saïdi H (2000) Model checking guided abstraction and analysis. In: Proceedings of the 7th international static analysis symposium (SAS2000), Santa Barbara, 29 June–1 July 2000. Lecture notes in computer science, vol 1824. Springer, Berlin Heidelberg New York, pp 377–396

  44. Visser W, Havelund K, Brat G, Park S (2000) Model checking programs. In: Proceedings of the 15th IEEE conference on automated software engineering, Grenoble, France, 11–15 September 2000, pp 3–12

  45. W3Consortium. Extensible Markup Language (XML) 1.0, 2nd edn. Available at: http://www.w3.org/XML/

  46. αspin project. University of Málaga. http://www.lcc.uma.es/gisum/fmse/tools

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to María del Mar Gallardo, Jesús Martínez, Pedro Merino or Ernesto Pimentel.

Rights and permissions

Reprints and permissions

About this article

Cite this article

del Mar Gallardo, M., Martínez, J., Merino, P. et al. αSPIN: A tool for abstract model checking. STTT 5, 165–184 (2004). https://doi.org/10.1007/s10009-003-0122-9

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-003-0122-9

Keywords

Navigation