Optimal Storage of Combinatorial State Spaces

  • Alfons LaarmanEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10811)


Efficiently deciding reachability for model checking problems requires storing the entire state space. We provide an information theoretical lower bound for these storage requirements and demonstrate how it can be reached using a binary tree in combination with a compact hash table. Experiments confirm that the lower bound is reached in practice in a majority of cases, confirming the combinatorial nature of state spaces.



The author thanks Yakir Vizel for promptly pointing out the natural number as a limit and Tim van Erven for a fruitful discussion.


  1. 1.
    Baranová, Z., Barnat, J., Kejstová, K., Kučera, T., Lauko, H., Mrázek, J., Ročkai, P., Štill, V.: Model checking of C and C++ with DIVINE 4. In: D’Souza, D., Narayan Kumar, K. (eds.) ATVA 2017. LNCS, vol. 10482, pp. 201–207. Springer, Cham (2017). CrossRefGoogle Scholar
  2. 2.
    van der Berg, F., Laarman, A.: SpinS: extending LTSmin with Promela through SpinJa. ENTCS 296, 95–105 (2013)Google Scholar
  3. 3.
    Blom, S., van de Pol, J., Weber, M.: LTSmin: distributed and symbolic reachability. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 354–359. Springer, Heidelberg (2010). CrossRefGoogle Scholar
  4. 4.
    Blom, S., Lisser, B., van de Pol, J., Weber, M.: A database approach to distributed state space generation. ENTCS 198(1), 17–32 (2008)MathSciNetzbMATHGoogle Scholar
  5. 5.
    Bollig, B., Wegener, I.: Improving the variable ordering of OBDDs is NP-complete. IEEE Trans. Comput. 45, 993–1002 (1996)CrossRefzbMATHGoogle Scholar
  6. 6.
    Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput. 35(8), 677–691 (1986)CrossRefzbMATHGoogle Scholar
  7. 7.
    Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: \(10^{20}\) states and beyond. In: LICS, pp. 428–439 (1990)Google Scholar
  8. 8.
    Cleary, J.G.: Compact hash tables using bidirectional linear probing. IEEE Trans. Comput. C-33(9), 828–834 (1984)Google Scholar
  9. 9.
    Cranen, S., Groote, J.F., Keiren, J.J.A., Stappers, F.P.M., de Vink, E.P., Wesselink, W., Willemse, T.A.C.: An overview of the mCRL2 toolset and its recent advances. In: Piterman, N., Smolka, S.A. (eds.) TACAS 2013. LNCS, vol. 7795, pp. 199–213. Springer, Heidelberg (2013). CrossRefGoogle Scholar
  10. 10.
    Emerson, E.A., Wahl, T.: Dynamic symmetry reduction. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 382–396. Springer, Heidelberg (2005). CrossRefGoogle Scholar
  11. 11.
    Evangelista, S., Kristensen, L.M., Petrucci, L.: Multi-threaded explicit state space exploration with state reconstruction. In: Van Hung, D., Ogawa, M. (eds.) ATVA 2013. LNCS, vol. 8172, pp. 208–223. Springer, Cham (2013). CrossRefGoogle Scholar
  12. 12.
    Geldenhuys, J., Valmari, A.: A nearly memory-optimal data structure for sets and mappings. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 136–150. Springer, Heidelberg (2003). CrossRefGoogle Scholar
  13. 13.
    Holzmann, G.J.: An analysis of bitstate hashing. In: Dembiński, P., Średniawa, M. (eds.) PSTV 1995. IFIPAICT, pp. 301–314. Springer, Boston (1996). CrossRefGoogle Scholar
  14. 14.
    Holzmann, G.J.: State compression in SPIN: recursive indexing and compression training runs. In: Proceedings of 3rd International SPIN Workshop (1997)Google Scholar
  15. 15.
    Holzmann, G.J.: The model checker SPIN. IEEE TSE 23, 279–295 (1997)Google Scholar
  16. 16.
    Jensen, P.G., Larsen, K.G., Srba, J.: PTrie: data structure for compressing and storing sets via prefix sharing. In: Hung, D., Kapur, D. (eds.) ICTAC 2017. LNCS, vol. 10580, pp. 248–265. Springer, Cham (2017). CrossRefGoogle Scholar
  17. 17.
    Jensen, P.G., Larsen, K.G., Srba, J., Sørensen, M.G., Taankvist, J.H.: Memory efficient data structures for explicit verification of timed systems. In: Badger, J.M., Rozier, K.Y. (eds.) NFM 2014. LNCS, vol. 8430, pp. 307–312. Springer, Cham (2014). CrossRefGoogle Scholar
  18. 18.
    Kant, G., Laarman, A., Meijer, J., van de Pol, J., Blom, S., van Dijk, T.: LTSmin: high-performance language-independent model checking. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 692–707. Springer, Heidelberg (2015). Google Scholar
  19. 19.
    Katz, S., Peled, D.: An efficient verification method for parallel and distributed programs. In: de Bakker, J.W., de Roever, W.-P., Rozenberg, G. (eds.) REX 1988. LNCS, vol. 354, pp. 489–507. Springer, Heidelberg (1989). CrossRefGoogle Scholar
  20. 20.
    Kordon, F., et al.: Complete results for the 2016 edition of the model checking contest, June 2016.
  21. 21.
    Laarman, A., van de Pol, J., Weber, M.: Parallel recursive state compression for free. In: Groce, A., Musuvathi, M. (eds.) SPIN 2011. LNCS, vol. 6823, pp. 38–56. Springer, Heidelberg (2011). CrossRefGoogle Scholar
  22. 22.
    Laarman, A., van de Pol, J., Weber, M.: Multi-core LTSmin: marrying modularity and scalability. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 506–511. Springer, Heidelberg (2011). CrossRefGoogle Scholar
  23. 23.
    Laarman, A.: Scalable multi-core model checking. Ph.D. thesis, UTwente (2014)Google Scholar
  24. 24.
    Pelánek, R.: BEEM: benchmarks for explicit model checkers. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 263–267. Springer, Heidelberg (2007). CrossRefGoogle Scholar
  25. 25.
    Stern, U., Dill, D.L.: Improved probabilistic verification by hash compaction. In: Camurati, P.E., Eveking, H. (eds.) CHARME 1995. LNCS, vol. 987, pp. 206–224. Springer, Heidelberg (1995). CrossRefGoogle Scholar
  26. 26.
    Valmari, A.: Error detection by reduced reachability graph generation. In: APN, pp. 95–112 (1988)Google Scholar
  27. 27.
    Valmari, A.: What the small Rubik’s cube taught me about data structures, information theory, and randomisation. STTT 8(3), 180–194 (2006)CrossRefGoogle Scholar
  28. 28.
    van der Vegt, S., Laarman, A.: A parallel compact hash table. In: Kotásek, Z., Bouda, J., Černá, I., Sekanina, L., Vojnar, T., Antoš, D. (eds.) MEMICS 2011. LNCS, vol. 7119, pp. 191–204. Springer, Heidelberg (2012). CrossRefGoogle Scholar
  29. 29.
    de Vries, S.H.S.: Optimizing state vector compression for program verification by reordering program variables. In: 21st Twente SConIT, vol. 21, 23 June 2014Google Scholar
  30. 30.
    Wahl, T., Donaldson, A.: Replication and abstraction: symmetry in automated formal verification. Symmetry 2(2), 799–847 (2010)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Leiden UniversityLeidenThe Netherlands

Personalised recommendations