Skip to main content

An Algorithm for Strongly Connected Component Analysis in n log n Symbolic Steps


We present a symbolic algorithm for strongly connected component decomposition. The algorithm performs Θ(n log n) image and preimage computations in the worst case, where n is the number of nodes in the graph. This is an improvement over the previously known quadratic bound. The algorithm can be used to decide emptiness of Büchi automata with the same complexity bound, improving Emerson and Lei's quadratic bound, and emptiness of Streett automata, with a similar bound in terms of nodes. It also leads to an improved procedure for the generation of nonemptiness witnesses.

This is a preview of subscription content, access via your institution.


  1. R.K. Brayton et al., VIS. In Formal Methods in Computer Aided Design, Springer-Verlag, Berlin, LNCS 1166, 1996, pp. 248–256.

  2. R. Bloem, K. Ravi, and F. Somenzi, “Efficient decision procedures for model checking of linear time logic properties,” in N. Halbwachs and D. Peled (Eds.), Eleventh Conference on Computer Aided Verification (CAV'99), Springer-Verlag, Berlin, LNCS 1633, 1999, pp. 222–235, .

  3. R.E. Bryant, “Graph-based algorithms for Boolean function manipulation,” IEEE Transactions on Computers, vol. C-35, No. 8, pp. 677–691, 1986.

    Google Scholar 

  4. J.R. Büchi, “On a decision method in restricted second order arithmetic,” in Proceedings of the 1960 International Congress on Logic, Methodology, and Philosophy of Science, Stanford University Press, 1962, pp 1–11.

  5. E.M. Clarke, E.A. Emerson, and A.P. Sistla, “Automatic verification of finite state concurrent systems using temporal logic specifications,” ACM Transaction on Programming Languages and Systems, Vol. 8, No. 2, pp. 244–263, 1986.

    Google Scholar 

  6. E.M. Clarke, O. Grumberg, K. McMillan, and X. Zhao, “Efficient generation of counterexamples and witnesses in symbolic model checking,” in Proceedings of the Design Automation Conference, San Francisco, CA, 1995, pp. 427–432.

  7. E.M. Clarke, O. Grumberg, and D.A. Peled, Model Checking, MIT Press, Cambridge, MA, 1999.

    Google Scholar 

  8. E.A. Emerson and C.-L. Lei, “Efficient model checking in fragments of the propositional mu-calculus,” in Proceedings of the First Annual Symposium of Logic in Computer Science, 1986, pp. 267–278.

  9. E.A. Emerson and C. Lei, “Modalities for model checking: Branching time logic strikes back,” Science of Computer Programming, Vol. 8, pp. 275–306, 1987.

    MathSciNet  Google Scholar 

  10. S. Even and Y. Shiloach, “An on-line edge-deletion problem,” Journal of the Association for Computing Machinery, Vol. 28, No. 1, pp. 1–4, 1981.

    MathSciNet  Google Scholar 

  11. R. Gentilini, C. Piazza, and A. Policriti, “Computing strongly connected componenets in a linear number of symbolic steps, in Symposium on Discrete Algorithms, Baltimore, MD, 2003.

  12. R.H. Hardin, Z. Har'El, and R.P. Kurshan, “COSPAN,” in T. Henzinger and R. Alur (Eds.), Eighth Conference on Computer Aided Verification (CAV'96), Springer-Verlag, Berlin, LNCS 1102, 1996, pp. 423–427.

  13. R.H. Hardin, R.P. Kurshan, S.K. Shukla, and M.Y. Vardi, “A new heuristic for bad cycle detection using BDDs,” in O. Grumberg (Eds.), Ninth Conference on Computer Aided Verification (CAV'97), Springer-Verlag, Berlin, LNCS 1254, 1997, pp. 268–278.

  14. G.H. Hardy, J.E. Littlewood, and G. Pólya, Inequalities, Cambridge University Press, 1952.

  15. R. Hojati, T.R. Shiple, R. Brayton, and R. Kurshan, “A unified approach to language containment and fair CTL model checking,” in Proceedings of the Design Automation Conference, 1993, pp. 475–481.

  16. M.R. Henzinger and J.A. Telle, “Faster algorithms for the nonemptiness of Streett automata and for communication protocol pruning,” in R. Karlsson and A. Lingas (Eds.), Algorithm Theory: SWAT'96, Springer-Verlag, Berlin, LNCS 1097, 1996, pp. 16–27.

  17. R. Hojati, H. Touati, R.P. Kurshan, and R. K. Brayton, “Efficient ω-regular language containment,” in Computer Aided Verification, Montréal, Canada, 1992, pp. 371–382.

  18. Y. Kesten, A. Pnueli, and L.-O. Raviv, “Algorithmic verification of linear temporal logic specifications,” in International Colloquium on Automata, Languages, and Programming (ICALP-98), Berlin, Springer, LNCS 1443, 1998, pp. 1–16.

  19. R.P. Kurshan, Computer-Aided Verification of Coordinating Processes, Princeton University Press, Princeton, NJ, 1994.

    Google Scholar 

  20. K. McMillan, “Class project on BDD-based verification,” Private Communication, E.M. Clarke, 1987.

  21. K.L. McMillan, Symbolic Model Checking, Kluwer Academic Publishers, Boston, MA, 1994.

    Google Scholar 

  22. K.L. McMillan, “Verification of infinite state systems by compositional model checking,” in Correct Hardware Design and Verification Methods (CHARME'99), Berlin, Springer-Verlag. LNCS 1703, 1999, pp. 219–233.

  23. K. Ravi, R. Bloem, and F. Somenzi, “A comparative study of symbolic algorithms for the computation of fair cycles,” in W.A. Hunt, Jr. and S.D. Johnson (Eds.), Formal Methods in Computer Aided Design, Springer-Verlag, LNCS 1954, 2000, pp. 143–160.

  24. R.S. Streett, “Propositional dynamic logic of looping and converse is elementarily decidable,” Information and Control, Vol. 54, pp. 121–141, 1982.

    Article  MATH  MathSciNet  Google Scholar 

  25. R. Tarjan, “Depth first search and linear graph algorithms,” SIAM journal on Computing, Vol. 1, pp. 146–160, 1972.

    Article  MATH  MathSciNet  Google Scholar 

  26. H.J. Touati, R.K. Brayton, and R.P. Kurshan, “Testing language containment for ω-automata using BDD's,” Information and Computation, Vol. 118, No. 1, pp. 101–109, 1995.

    Article  MathSciNet  Google Scholar 

  27. A. Xie and P. A. Beerel, “Implicit enumeration of strongly connected components,” in Proceedings of the International Conference on Computer-Aided Design, San Jose, CA, 1999, pp 37–40.

  28. A. Xie and P. A. Beerel, “Implicit enumeration of strongly connected components and an application to formal verification,” IEEE Transactions on Computer-Aided Design, Vol. 19, No. 10, pp. 1225–1230, 2000.

    Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Roderick Bloem.

Additional information

This work was supported in part by SRC contract 98-DJ-620 and NSF grant CCR-99-71195.

This work was done while the author was at the University of Colorado at Boulder.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Bloem, R., Gabow, H.N. & Somenzi, F. An Algorithm for Strongly Connected Component Analysis in n log n Symbolic Steps. Form Method Syst Des 28, 37–56 (2006).

Download citation

  • Issue Date:

  • DOI:


  • symbolic algorithms
  • strongly connected components
  • binary decision diagrams
  • language emptiness
  • Büchi automata
  • Streett automata
  • model checking
  • depth-first search
  • breadth-first search