Optimal Storage of Combinatorial State Spaces

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

Abstract

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.

Notes

Acknowledgements

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

References

  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).  https://doi.org/10.1007/978-3-319-68167-2_14 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).  https://doi.org/10.1007/978-3-642-14295-6_31 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)MathSciNetMATHGoogle Scholar
  5. 5.
    Bollig, B., Wegener, I.: Improving the variable ordering of OBDDs is NP-complete. IEEE Trans. Comput. 45, 993–1002 (1996)CrossRefMATHGoogle Scholar
  6. 6.
    Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput. 35(8), 677–691 (1986)CrossRefMATHGoogle 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).  https://doi.org/10.1007/978-3-642-36742-7_15 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).  https://doi.org/10.1007/978-3-540-31980-1_25 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).  https://doi.org/10.1007/978-3-319-02444-8_16 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).  https://doi.org/10.1007/3-540-44829-2_9 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).  https://doi.org/10.1007/978-0-387-34892-6_19 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).  https://doi.org/10.1007/978-3-319-67729-3_15 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).  https://doi.org/10.1007/978-3-319-06200-6_26 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).  https://doi.org/10.1007/978-3-662-46681-0_61 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).  https://doi.org/10.1007/BFb0013032 CrossRefGoogle Scholar
  20. 20.
    Kordon, F., et al.: Complete results for the 2016 edition of the model checking contest, June 2016. http://mcc.lip6.fr/2016/results.php
  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).  https://doi.org/10.1007/978-3-642-22306-8_4 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).  https://doi.org/10.1007/978-3-642-20398-5_40 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).  https://doi.org/10.1007/978-3-540-73370-6_17 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).  https://doi.org/10.1007/3-540-60385-9_13 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).  https://doi.org/10.1007/978-3-642-25929-6_18 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