Variations on parallel explicit emptiness checks for generalized Büchi automata

  • E. RenaultEmail author
  • A. Duret-Lutz
  • F. Kordon
  • D. Poitrenaud
TACAS 2015


We present new parallel explicit emptiness checks for LTL model checking. Unlike existing parallel emptiness checks, these are based on a strongly connected component (SCC) enumeration and support generalized Büchi acceptance, and require no synchronization points or recomputing procedures. A salient feature of our algorithms is the use of a global union-find data structure in which multiple threads share structural information about the automaton checked. Besides these basic algorithms, we present one architectural variant isolating threads that write to the union-find, and one extension that decomposes the automaton based on the strength of its SCCs to use more optimized emptiness checks. The results from an extensive experimentation of our algorithms and their variations show encouraging performances, especially when the decomposition technique is used.


Emptiness checks Generalized Büchi Strongly connected component 


  1. 1.
    Anderson, R.J., Woll, H.: Wait-free parallel algorithms for the union-find problem. In: STC’94, pp. 370–380 (1994)Google Scholar
  2. 2.
    Barnat, J., Brim, L., Chaloupka, J.: Parallel breadth-first search LTL model-checking. In: ASE’03, pp. 106–115. IEEE Computer Society (2003)Google Scholar
  3. 3.
    Barnat, J., Brim, L., Chaloupka, J.: From distributed memory cycle detection to parallel LTL model checking. In: FMICS’05, vol. 133 of ENTCS, pp. 21–39 (2005)Google Scholar
  4. 4.
    Barnat, J., Brim, L., Ročkai, P.: DiVinE Multi-Core— A Parallel LTL Model-Checker. In: ATVA’08, vol. 5311 of LNCS, pp. 234–239. Springer, Berlin (2008)Google Scholar
  5. 5.
    Barnat, J., Brim, L., Ročkai, P.: A time-optimal on-the-fly parallel algorithm for model checking of weak LTL properties. In: ICFEM’09, vol. 5885 of LNCS, pp. 407–425. Springer, Berlin (2009)Google Scholar
  6. 6.
    Barnat, J., Brim, L., Ročkai, P.: Scalable shared memory LTL model checking. Int. J. Softw. Tools Technol. Transf. 12(2), 139–153 (2010)CrossRefGoogle Scholar
  7. 7.
    Benedikt, M., Lenhardt, R., Worrell, J.: LTL model checking of interval markov chains. In: TACAS’13, vol. 7795 of LNCS, pp. 32–46. Springer, Berlin (2013)Google Scholar
  8. 8.
    Berger, E.D., McKinley, K.S., Blumofe, R.D., Wilson, P.R.: Hoard: A scalable memory allocator for multithreaded applications. J. ACM. 117–128 (2000)Google Scholar
  9. 9.
    Berman, I.: Multicore programming in the face of metamorphosis: union-find as an example. Master’s thesis, Tel-Aviv University, School of Computer Science (2010)Google Scholar
  10. 10.
    Bloemen, V.: On-the-fly parallel decomposition of strongly connected components. Master’s thesis, University of Twente (2015)Google Scholar
  11. 11.
    Bloemen, V., Laarman, A., van de Pol, J.: Multi-core on-the-fly SCC decomposition. In: PPoPP’16. ACM (2016)Google Scholar
  12. 12.
    Brim, L., Černá, I., Krcal, P., Pelánek, R.: Distributed LTL model checking based on negative cycle detection. In: FSTTCS’01, pp. 96–107. Springer, Berlin (2001)Google Scholar
  13. 13.
    Brim, L., Černá, I., Moravec, P., Šimša, J.: Accepting predecessors are better than back edges in distributed LTL model-checking. In: FMCAD’04, vol. 3312 of LNCS, pp. 352–366. Springer, Berlin (2004)Google Scholar
  14. 14.
    Černá, I., Pelánek, R.: Relating hierarchy of temporal properties to model checking. In: MFCS’03, vol. 2747 of LNCS, pp. 318–327. Springer, Berlin (2003)Google Scholar
  15. 15.
    Černá, I., Pelánek, R.: Distributed explicit fair cycle detection (set based approach). In: SPIN’03, vol. 2648 of LNCS, pp. 49–73. Springer, Berlin (2003)Google Scholar
  16. 16.
    Courcoubetis, C., Vardi, M.Y., Wolper, P., Yannakakis, M.: Memory-efficient algorithm for the verification of temporal properties. In: CAV’90, vol. 531 of LNCS, pp. 233–242. Springer, Berlin (1991)Google Scholar
  17. 17.
    Couvreur, J.-M., Duret-Lutz, A., Poitrenaud, D.: On-the-fly emptiness checks for generalized Büchi automata. In: SPIN’05, vol. 3639 of LNCS, pp. 143–158. Springer, Berlin (2005)Google Scholar
  18. 18.
    Dijkstra, E.W.: EWD 376: finding the maximum strong components in a directed graph. (1973)
  19. 19.
    Duret-Lutz, A., Poitrenaud, D.: SPOT: an extensible model checking library using transition-based generalized Büchi automata. In: MASCOTS’04, pp. 76–83 (2004). IEEE Computer Society PressGoogle Scholar
  20. 20.
    Evangelista, S., Petrucci, L., Youcef, S.: Parallel nested depth-first searches for LTL model checking. In: ATVA’11, vol. 6996 of LNCS, pp. 381–396. Springer, Berlin (2011)Google Scholar
  21. 21.
    Evangelista, S., Laarman, A., Petrucci, L., van de Pol, J.: Improved multi-core nested depth-first search. In: ATVA’12, vol. 7561 of LNCS, pp. 269–283. Springer, Berlin (2012)Google Scholar
  22. 22.
    Gaiser, A., Schwoon, S.: Comparison of algorithms for checking emptiness on Büchi automata. In: MEMICS’09, vol. 13 of OASICS. Schloss Dagstuhl, Leibniz-Zentrum fuer Informatik, Germany (2009)Google Scholar
  23. 23.
    Holzmann, G.J., Joshi, R., Groce, A.: Swarm verification techniques. IEEE Trans. Softw. Eng. 37(6), 845–857 (2011)CrossRefGoogle Scholar
  24. 24.
    Kant, G., Laarman, A.W., Meijer, J.J.G., van de Pol, J.C., Blom, S.C.C., van Dijk, T.: Ltsmin: high-performance language-independent model checking. In: Tools and Algorithms for the Construction and Analysis of Systems, vol. 9035 of LNCS, pp. 692–707. Springer, London (2015)Google Scholar
  25. 25.
    Kesten, Y., Pnueli, A., on Raviv, L.: Algorithmic verification of linear temporal logic specifications. In: ICALP’98, vol. 1443 of LNCS, pp. 1–16. Springer, Berlin (1998)Google Scholar
  26. 26.
    Laarman, A., van de Pol, J.: Variations on multi-core nested depth-first search. In: PDMC’11, pp. 13–28 (2011)Google Scholar
  27. 27.
    Laarman, A., Langerak, R., van de Pol, J., Weber, M., Wijs, A.: Multi-core nested depth-first search. In: ATVA’11, vol. 6996 of LNCS, pp. 321–335. Springer, Berlin (2011)Google Scholar
  28. 28.
    Lowe, G.: Concurrent Depth-First Search Algorithms Based on Tarjan’s Algorithm, pp. 1–19. Springer, Berlin (2015)Google Scholar
  29. 29.
    Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: PODC’96, pp. 267–275, ACM (1996)Google Scholar
  30. 30.
    Nuutila, E., Soisalon-Soininen, E.: On finding the strongly connected components in a directed graph. Inf. Process. Lett. 49(1), 9–14 (1994)MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    Patwary, M.M.A., Blair, J.R.S., Manne, F.: Experiments on union-find algorithms for the disjoint-set data structure. In: SEA’10, vol. 6049 of LNCS, pp. 411–423. Springer, Berlin (2010)Google Scholar
  32. 32.
    Pelánek, R.: BEEM: benchmarks for explicit model checkers. In: SPIN’07, vol. 4595 of LNCS, pp. 263–267. Springer, Berlin (2007)Google Scholar
  33. 33.
    Pelánek, R.: Properties of state spaces and their applications. Int. J. Softw. Tools Technol. Transf. 10, 443–454 (2008)CrossRefGoogle Scholar
  34. 34.
    Reif, J.H.: Depth-first search is inherently sequential. Inf. Process. Lett. 20, 229–234 (1985)MathSciNetCrossRefzbMATHGoogle Scholar
  35. 35.
    Renault, E., Duret-Lutz, A., Kordon, F., Poitrenaud, D.: Three SCC-based emptiness checks for generalized Büchi automata. In: LPAR’13, vol. 8312 of LNCS, pp. 668–682. Springer, Berlin (2013)Google Scholar
  36. 36.
    Renault, E., Duret-Lutz, A., Kordon, F., Poitrenaud, D.: Strength-based decomposition of the property Büchi automaton for faster model checking. In: TACAS’13, vol. 7795 of LNCS, pp. 580–593. Springer, Berlin (2013)Google Scholar
  37. 37.
    Renault, E., Duret-Lutz, A., Kordon, F., Poitrenaud, D.: Parallel explicit model checking for generalized Büchi automata. In: TACAS’15, vol. 9035 of LNCS, pp. 613–627. Springer, Berlin (2015)Google Scholar
  38. 38.
    Schwoon, S., Esparza, J.: A note on on-the-fly verification algorithms. In: TACAS’05, vol. 3440 of LNCS, Springer, Berlin (2005)Google Scholar
  39. 39.
    Tarjan, R.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972)MathSciNetCrossRefzbMATHGoogle Scholar
  40. 40.
    Tarjan, R.E.: Efficiency of a good but not linear set union algorithm. J. ACM 22(2), 215–225 (1975)MathSciNetCrossRefzbMATHGoogle Scholar
  41. 41.
    Tauriainen, H.: Nested emptiness search for generalized Büchi automata. In: ACSD’04, pp. 165–174. IEEE Computer Society (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • E. Renault
    • 1
    Email author
  • A. Duret-Lutz
    • 1
  • F. Kordon
    • 2
    • 3
  • D. Poitrenaud
    • 3
    • 4
  1. 1.LRDEEPITAKremlin-BicêtreFrance
  2. 2.Sorbonne Universités, UPMC Univ. Paris 06ParisFrance
  3. 3.CNRS UMR 7606, LIP6ParisFrance
  4. 4.Université Paris DescartesParisFrance

Personalised recommendations