Explicit-State Model Checking

  • Gerard J. HolzmannEmail author


In this chapter we discuss the methodology used in explicit-state logic model checking, specifically as applied to asynchronous software systems. As the name indicates, in an explicit-state model checker the state descriptor for a system is maintained in explicit, and not symbolic, form, as are all state transitions. Abstraction techniques and partial-order reduction algorithms are used to reduce the search space to a minimum, and advanced storage techniques can be used to extend the reach of this form of verification to very large system sizes. The basic algorithms for explicit-state model checking date from the late 1970s and early 1980s. More advanced versions of these algorithms remain an active area of research.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    The game of tic-tac-toe.
  2. 2.
    Avrunin, G., Corbett, J., Dwyer, M., Pasareanu, C., Siegel, S.: Benchmarking finite-state verifiers. Int. J. Softw. Tools Technol. Transf. 2(4), 317–320 (2000) CrossRefGoogle Scholar
  3. 3.
    Barnet, J., Brim, L., Rockai, P.: DiVinE multi-core, a parallel LTL model checker. In: Liu, Z., Ravn, A.P. (eds.) Intl. Symp. Automated Technology for Verification and Analysis (ATVA). LNCS, vol. 5799, pp. 234–239. Springer, Heidelberg (2009) Google Scholar
  4. 4.
    Bloom, B.: Spacetime trade-offs in hash coding with allowable errors. Commun. ACM 13(7), 422–426 (1970) CrossRefGoogle Scholar
  5. 5.
    Bosnacki, D.: Enhancing state space reduction techniques for model checking. Ph.D. thesis, Eindhoven University of Technology (2001) Google Scholar
  6. 6.
    Clarke, E., Emerson, E., Jha, S., Sistla, A.: Symmetry reduction in model checking. In: Hu, A.J., Vardi, M.Y. (eds.) Intl. Conf. on Computer-Aided Verification (CAV). LNCS, vol. 1427, pp. 147–158. Springer, Heidelberg (1998) CrossRefGoogle Scholar
  7. 7.
    Corbett, J.: Evaluating deadlock detection methods for concurrent software. Trans. Softw. Eng. 22(3), 161–180 (1996) CrossRefGoogle Scholar
  8. 8.
    Courcoubetis, C., Vardi, M., Wolper, P., Yannakakis, M.: Memory efficient algorithms for the verification of temporal properties. Form. Methods Syst. Des. 1(2–3), 275–288 (1992) CrossRefGoogle Scholar
  9. 9.
    Dams, D., Grumberg, O.: Abstraction and abstraction refinement. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018) Google Scholar
  10. 10.
    Etessami, K., Holzmann, G.: Optimizing Büchi automata. In: Palamidessi, C. (ed.) Proc. 11th Intl. Conf. on Concurrency Theory (CONCUR). LNCS, vol. 1877, pp. 153–167. Springer, Heidelberg (2000) Google Scholar
  11. 11.
    Gerth, R., Peled, D., Vardi, M., Wolper, P.: Simple on-the-fly automatic verification of linear temporal logic. In: Proc. of the Fifteenth IFIP WG6.1 International Symposium on Protocol Specification, Testing and Verification XV, pp. 3–18. Chapman & Hall, London (1996) CrossRefGoogle Scholar
  12. 12.
    Hajek, J.: Automatically verified data transfer protocols. In: Intl. Conf. on Computer Communication (ICCC), pp. 749–756 (1978) Google Scholar
  13. 13.
    Holzmann, G.: PAN: a protocol specification analyzer. Tech. Rep. TM81-11271-5, AT&T Bell Laboratories, (1981) Google Scholar
  14. 14.
    Holzmann, G.: An improved reachability analysis technique. Softw. Pract. Exp. 18(2), 137–161 (1988) CrossRefGoogle Scholar
  15. 15.
    Holzmann, G.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2004) Google Scholar
  16. 16.
    Holzmann, G.: Parallelizing the Spin model checker. In: Donaldson, A.F., Parker, D. (eds.) Intl. Workshop on Model Checking Software (SPIN). LNCS, vol. 7385, pp. 155–171. Springer, Heidelberg (2012) CrossRefGoogle Scholar
  17. 17.
    Holzmann, G.: Proving properties of concurrent programs. In: Bartocci, E., Ramakrishnan, C.R. (eds.) Intl. Symposium on Model Checking of Software (SPIN). LNCS, vol. 7976, pp. 18–23. Springer, Heidelberg (2013) CrossRefGoogle Scholar
  18. 18.
    Holzmann, G., Bosnacki, D.: The design of a multi-core extension of the Spin model checker. Trans. Softw. Eng. 33(10), 659–674 (2007) CrossRefGoogle Scholar
  19. 19.
    Holzmann, G., Florian, M.: Model checking with bounded context switching. Form. Asp. Comput. 23(3), 365–389 (2011) CrossRefGoogle Scholar
  20. 20.
    Holzmann, G., Joshi, R., Gorce, A.: Swarm verification techniques. Trans. Softw. Eng. 37(6), 845–857 (2011) CrossRefGoogle Scholar
  21. 21.
    Holzmann, G., Peled, D.: An improvement in formal verification. In: Proc. of the 7th IFIP WG6.1 International Conference on Formal Description Techniques VII, pp. 197–211. Chapman & Hall, London (1995) Google Scholar
  22. 22.
    Holzmann, G., Peled, D., Yannakakis, M.: On nested depth first search. In: Grégoire, J.C., Holzmann, G., Peled, D. (eds.) The Spin Verification System. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, vol. 32, pp. 23–32. DIMACS/AMS, Providence (1996) CrossRefGoogle Scholar
  23. 23.
    Ip, C., Dill, D.: Better verification through symmetry. Form. Methods Syst. Des. 9(1–2), 41–75 (2006) Google Scholar
  24. 24.
    Park, D.: Concurrency and automata on infinite sequences. In: Deussen, P. (ed.) GI-Conference on Theoretical Computer Science. LNCS, vol. 104, pp. 167–183. Springer, Heidelberg (1981) CrossRefGoogle Scholar
  25. 25.
    Peled, D.: Partial-order reduction. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018) Google Scholar
  26. 26.
    Pnueli, A.: The temporal logic of programs. In: Annual Symp. on Foundations of Computer Science (FOCS), pp. 46–57. IEEE, Piscataway (1977) Google Scholar
  27. 27.
    Tanenbaum, A.: Computer Networks, 1st edn. Prentice Hall, New York (1981) zbMATHGoogle Scholar
  28. 28.
    Vardi, M., Wolper, P.: Reasoning about infinite computations. Inf. Comput. 115(1), 1–37 (1994). Journal version of a conference paper first published in 1983 MathSciNetCrossRefGoogle Scholar
  29. 29.
    West, C.: General technique for communications protocol validation. IBM J. Res. Dev. 22(3), 393–404 (1978) CrossRefGoogle Scholar
  30. 30.
    West, C., Zafiropulo, P.: Automated validation of a communications protocol: the CCITT X.21 recommendation. IBM J. Res. Dev. 22(1), 60–71 (1978) CrossRefGoogle Scholar
  31. 31.
    Wolper, P.: Specifying interesting properties of programs in propositional temporal logic. In: Symp. on Principles of Programming Languages (POPL), pp. 184–193. ACM, New York (1986) Google Scholar
  32. 32.
    Wolper, P., Leroy, D.: Reliable hashing without collision detection. In: Courcoubetis, C. (ed.) Intl. Conf. on Computer-Aided Verification (CAV). LNCS, vol. 697, pp. 59–70. Springer, Heidelberg (1993) CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Nimble ResearchMonroviaUSA

Personalised recommendations