{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,11]],"date-time":"2026-07-11T03:28:03Z","timestamp":1783740483793,"version":"3.55.0"},"publisher-location":"Cham","reference-count":31,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783031308192","type":"print"},{"value":"9783031308208","type":"electronic"}],"license":[{"start":{"date-parts":[[2023,1,1]],"date-time":"2023-01-01T00:00:00Z","timestamp":1672531200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2023,4,20]],"date-time":"2023-04-20T00:00:00Z","timestamp":1681948800000},"content-version":"vor","delay-in-days":109,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2023]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Decomposing a directed graph to its strongly connected components (SCCs) is a fundamental task in model checking. To deal with the state-space explosion problem, graphs are often represented <jats:italic>symbolically<\/jats:italic> using binary decision diagrams (BDDs), which have exponential compression capabilities. The theoretically-best symbolic algorithm for SCC decomposition is Gentilini et al\u2019s <jats:inline-formula><jats:tex-math>$$\\textsc {Skeleton}$$<\/jats:tex-math><\/jats:inline-formula> algorithm, that uses <jats:italic>O<\/jats:italic>(<jats:italic>n<\/jats:italic>) symbolic steps on a graph of <jats:italic>n<\/jats:italic> nodes. However, <jats:inline-formula><jats:tex-math>$$\\textsc {Skeleton}$$<\/jats:tex-math><\/jats:inline-formula> uses <jats:inline-formula><jats:tex-math>$$\\Theta (n)$$<\/jats:tex-math><\/jats:inline-formula> symbolic objects, as opposed to (poly-)logarithmically many, which is the norm for symbolic algorithms, thereby relinquishing its symbolic nature. Here we present <jats:inline-formula><jats:tex-math>$$\\textsc {Chain}$$<\/jats:tex-math><\/jats:inline-formula>, a new symbolic algorithm for SCC decomposition that also makes <jats:italic>O<\/jats:italic>(<jats:italic>n<\/jats:italic>) symbolic steps, but further uses <jats:italic>logarithmic space<\/jats:italic>, and is thus <jats:italic>truly symbolic<\/jats:italic>. We then extend <jats:inline-formula><jats:tex-math>$$\\textsc {Chain}$$<\/jats:tex-math><\/jats:inline-formula> to <jats:inline-formula><jats:tex-math>$$\\textsc {ColoredChain}$$<\/jats:tex-math><\/jats:inline-formula>, an algorithm for SCC decomposition on <jats:italic>edge-colored graphs<\/jats:italic>, which arise naturally in model-checking a family of systems. Finally, we perform an experimental evaluation of <jats:inline-formula><jats:tex-math>$$\\textsc {Chain}$$<\/jats:tex-math><\/jats:inline-formula> among other standard symbolic SCC algorithms in the literature. The results show that <jats:inline-formula><jats:tex-math>$$\\textsc {Chain}$$<\/jats:tex-math><\/jats:inline-formula> is competitive on almost all benchmarks, and often faster, while it clearly outperforms all other algorithms on challenging inputs.<\/jats:p>","DOI":"10.1007\/978-3-031-30820-8_22","type":"book-chapter","created":{"date-parts":[[2023,4,19]],"date-time":"2023-04-19T19:02:36Z","timestamp":1681930956000},"page":"353-371","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":5,"title":["A Truly Symbolic Linear-Time Algorithm for SCC Decomposition"],"prefix":"10.1007","author":[{"given":"Casper Abild","family":"Larsen","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Simon Meldahl","family":"Schmidt","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jesper","family":"Steensgaard","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Anna Blume","family":"Jakobsen","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4305-0625","authenticated-orcid":false,"given":"Jaco van","family":"de Pol","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8943-0722","authenticated-orcid":false,"given":"Andreas","family":"Pavlogiannis","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2023,4,20]]},"reference":[{"key":"22_CR1","unstructured":"AEON models repository (2022), https:\/\/github.com\/sybila\/biodivine-lib-param-bn\/tree\/lmcs, Last accessed on 2022-10-01"},{"key":"22_CR2","doi-asserted-by":"publisher","unstructured":"Abraham, E., Jansen, N., Wimmer, R., Katoen, J.P., Becker, B.: DTMC model checking by SCC reduction. In: Proceedings of the 2010 Seventh International Conference on the Quantitative Evaluation of Systems. p. 37\u201346. QEST \u201910, IEEE Computer Society, USA (2010). https:\/\/doi.org\/10.1109\/QEST.2010.13","DOI":"10.1109\/QEST.2010.13"},{"key":"22_CR3","doi-asserted-by":"crossref","unstructured":"Amparore, E.G., Donatelli, S., Gall\u00e0, F.: starMC: an automata based CTL* model checker. PeerJ Comput. Sci. 8, \u00a0e823 (2022)","DOI":"10.7717\/peerj-cs.823"},{"key":"22_CR4","doi-asserted-by":"crossref","unstructured":"Barnat, J., Chaloupka, J., van\u00a0de Pol, J.: Distributed algorithms for SCC decomposition. J. Log. Comput. 21(1), 23\u201344 (2011)","DOI":"10.1093\/logcom\/exp003"},{"key":"22_CR5","doi-asserted-by":"publisher","unstructured":"Benes, N., Brim, L., Pastva, S., Safr\u00e1nek, D.: Computing bottom SCCs symbolically using transition guided reduction. In: Silva, A., Leino, K.R.M. (eds.) Computer Aided Verification, CAV 2021, Part I. LNCS, vol. 12759, pp. 505\u2013528. Springer (2021). https:\/\/doi.org\/10.1007\/978-3-030-81685-8_24","DOI":"10.1007\/978-3-030-81685-8_24"},{"key":"22_CR6","doi-asserted-by":"publisher","unstructured":"Benes, N., Brim, L., Pastva, S., Safr\u00e1nek, D.: BDD-based algorithm for SCC decomposition of edge-coloured graphs. Logical Methods in Computer Science 18(1) (2022). https:\/\/doi.org\/10.46298\/lmcs-18(1:38)2022","DOI":"10.46298\/lmcs-18(1:38)2022"},{"key":"22_CR7","doi-asserted-by":"crossref","unstructured":"Bloem, R., Gabow, H.N., Somenzi, F.: An algorithm for strongly connected component analysis in n log n symbolic steps. Formal Methods in System Design 28(1), 37\u201356 (2006)","DOI":"10.1007\/s10703-006-4341-z"},{"key":"22_CR8","doi-asserted-by":"crossref","unstructured":"Bloem, R., Ravi, K., Somenzi, F.: Efficient decision procedures for model checking of linear time logic properties. In: Proceedings of the 11th International Conference on Computer Aided Verification. p. 222\u2013235. CAV \u201999, Springer (1999)","DOI":"10.1007\/3-540-48683-6_21"},{"key":"22_CR9","doi-asserted-by":"crossref","unstructured":"Bryant, R.E.: Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293\u2013318 (1992)","DOI":"10.1145\/136035.136043"},{"key":"22_CR10","doi-asserted-by":"publisher","unstructured":"Chaouiya, C., Naldi, A., Thieffry, D.: Logical modelling of gene regulatory networks with GINsim. Bacterial Molecular Networks p. 463\u2013479 (2012). https:\/\/doi.org\/10.1007\/978-1-61779-361-5_23","DOI":"10.1007\/978-1-61779-361-5_23"},{"key":"22_CR11","doi-asserted-by":"crossref","unstructured":"Chatterjee, K., Dvo\u0159\u00e1k, W., Henzinger, M., Loitzenbauer, V.: Lower bounds for symbolic computation on graphs: Strongly connected components, liveness, safety, and diameter. In: Proc. 29th ACM-SIAM Symp. on Discrete Algorithms. p. 2341\u20132356. SODA \u201918, Soc. for Industrial and Applied Mathematics, USA (2018)","DOI":"10.1137\/1.9781611975031.151"},{"key":"22_CR12","doi-asserted-by":"crossref","unstructured":"Chatterjee, K., Henzinger, M.: Faster and dynamic algorithms for maximal end-component decomposition and related graph problems in probabilistic verification. In: Proc. 22nd ACM-SIAM Symp. on Discrete Algorithms. p. 1318\u20131336. SODA \u201911, Society for Industrial and Applied Mathematics, USA (2011)","DOI":"10.1137\/1.9781611973082.101"},{"key":"22_CR13","doi-asserted-by":"crossref","unstructured":"Cimatti, A., Clarke, E.M., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: Nusmv 2: An opensource tool for symbolic model checking. In: CAV. LNCS, vol.\u00a02404, pp. 359\u2013364. Springer (2002)","DOI":"10.1007\/3-540-45657-0_29"},{"key":"22_CR14","doi-asserted-by":"crossref","unstructured":"van Dijk, T., van\u00a0de Pol, J.: Sylvan: multi-core framework for decision diagrams. Int. Journal on Software Tools for Technology Transfer 19(6), 675\u2013696 (2017)","DOI":"10.1007\/s10009-016-0433-2"},{"key":"22_CR15","unstructured":"Dijkstra, E.W.: A Discipline of Programming. Prentice Hall PTR, USA, 1st edn. (1997)"},{"key":"22_CR16","doi-asserted-by":"crossref","unstructured":"Fisler, K., Fraer, R., Kamhi, G., Vardi, M.Y., Yang, Z.: Is there a best symbolic cycle-detection algorithm? In: Proc. 7th IC on Tools and Algorithms for the Construction and Analysis of Systems. p. 420\u2013434. TACAS 2001, Springer (2001)","DOI":"10.1007\/3-540-45319-9_29"},{"key":"22_CR17","unstructured":"Gentilini, R., Piazza, C., Policriti, A.: Computing strongly connected components in a linear number of symbolic steps. In: Proceedings of the Fourteenth Annual ACM-SIAM Symposium on Discrete Algorithms. p. 573\u2013582. SODA \u201903, Society for Industrial and Applied Mathematics, USA (2003)"},{"key":"22_CR18","doi-asserted-by":"publisher","unstructured":"Hardin, R.H., Kurshan, R.P., Shukla, S.K., Vardi, M.Y.: A new heuristic for bad cycle detection using BDDs. Form. Methods Syst. Des. 18(2), 131\u2013140 (mar 2001). https:\/\/doi.org\/10.1023\/A:1008727508722","DOI":"10.1023\/A:1008727508722"},{"key":"22_CR19","doi-asserted-by":"crossref","unstructured":"Kant, G., Laarman, A., Meijer, J., van\u00a0de Pol, J., Blom, S., van Dijk, T.: LTSmin: High-performance language-independent model checking. In: TACAS. Lecture Notes in Computer Science, vol.\u00a09035, pp. 692\u2013707. Springer (2015)","DOI":"10.1007\/978-3-662-46681-0_61"},{"key":"22_CR20","doi-asserted-by":"publisher","unstructured":"Kauffman, S.A.: Metabolic stability and epigenesis in randomly constructed genetic nets. Journal of Theoretical Biology 22(3), 437\u201367 (1969). https:\/\/doi.org\/10.1016\/0022-5193(69)90015-0","DOI":"10.1016\/0022-5193(69)90015-0"},{"key":"22_CR21","doi-asserted-by":"crossref","unstructured":"Kesten, Y., Pnueli, A., Raviv, L., Shahar, E.: Model checking with strong fairness. Formal Methods Syst. Des. 28(1), 57\u201384 (2006)","DOI":"10.1007\/s10703-006-4342-y"},{"key":"22_CR22","doi-asserted-by":"crossref","unstructured":"Kordon, F., Garavel, H., Hillah, L., Paviot-Adet, E., Jezequel, L., Hulin-Hubard, F., Amparore, E.G., Beccuti, M., Berthomieu, B., Evrard, H., Jensen, P.G., Botlan, D.L., Liebke, T., Meijer, J., Srba, J., Thierry-Mieg, Y., van\u00a0de Pol, J., Wolf, K.: MCC\u20192017 - the seventh model checking contest. Trans. Petri Nets Other Model. Concurr. 13, 181\u2013209 (2018)","DOI":"10.1007\/978-3-662-58381-4_9"},{"key":"22_CR23","doi-asserted-by":"crossref","unstructured":"Kwiatkowska, M.Z., Norman, G., Parker, D.: PRISM 4.0: Verification of probabilistic real-time systems. In: CAV. Lecture Notes in Computer Science, vol.\u00a06806, pp. 585\u2013591. Springer (2011)","DOI":"10.1007\/978-3-642-22110-1_47"},{"key":"22_CR24","doi-asserted-by":"crossref","unstructured":"Lomuscio, A., Qu, H., Raimondi, F.: MCMAS: an open-source model checker for the verification of multi-agent systems. Int. J. Softw. Tools Technol. Transf. 19(1), 9\u201330 (2017)","DOI":"10.1007\/s10009-015-0378-x"},{"key":"22_CR25","doi-asserted-by":"crossref","unstructured":"Pel\u00e1nek, R.: BEEM: benchmarks for explicit model checkers. In: SPIN. Lecture Notes in Computer Science, vol.\u00a04595, pp. 263\u2013267. Springer (2007)","DOI":"10.1007\/978-3-540-73370-6_17"},{"key":"22_CR26","doi-asserted-by":"crossref","unstructured":"Schwoon, S., Esparza, J.: A note on on-the-fly verification algorithms. In: TACAS. Lecture Notes in Computer Science, vol.\u00a03440, pp. 174\u2013190. Springer (2005)","DOI":"10.1007\/978-3-540-31980-1_12"},{"key":"22_CR27","doi-asserted-by":"publisher","unstructured":"Sharir, M.: A strong-connectivity algorithm and its applications in data flow analysis. Computers & Mathematics with Applications 7(1), 67\u201372 (1981). https:\/\/doi.org\/10.1016\/0898-1221(81)90008-0","DOI":"10.1016\/0898-1221(81)90008-0"},{"key":"22_CR28","doi-asserted-by":"publisher","unstructured":"Tarjan, R.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146\u2013160 (jun 1972). https:\/\/doi.org\/10.1137\/0201010","DOI":"10.1137\/0201010"},{"key":"22_CR29","doi-asserted-by":"crossref","unstructured":"Wang, C., Bloem, R., Hachtel, G.D., Ravi, K., Somenzi, F.: Divide and compose: SCC refinement for language emptiness. In: Proceedings of the 12th International Conference on Concurrency Theory. p. 456\u2013471. CONCUR \u201901, Springer-Verlag, Berlin, Heidelberg (2001)","DOI":"10.1007\/3-540-44685-0_31"},{"key":"22_CR30","doi-asserted-by":"crossref","unstructured":"Xie, A., Beerel, P.A.: Implicit enumeration of strongly connected components and an application to formal verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 19(10), 1225\u20131230 (2000)","DOI":"10.1109\/43.875347"},{"key":"22_CR31","doi-asserted-by":"crossref","unstructured":"Zhao, Y., Ciardo, G.: Symbolic computation of strongly connected components and fair cycles using saturation. Innov. Syst. Softw. Eng. 7(2), 141\u2013150 (2011)","DOI":"10.1007\/s11334-011-0146-3"}],"container-title":["Lecture Notes in Computer Science","Tools and Algorithms for the Construction and Analysis of Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-30820-8_22","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,8,2]],"date-time":"2023-08-02T11:05:50Z","timestamp":1690974350000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-30820-8_22"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023]]},"ISBN":["9783031308192","9783031308208"],"references-count":31,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-30820-8_22","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023]]},"assertion":[{"value":"20 April 2023","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TACAS","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Tools and Algorithms for the Construction and Analysis of Systems","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Paris","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"France","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2023","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22 April 2023","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"27 April 2023","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"29","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tacas2023","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/etaps.org\/2023\/tacas","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Double-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"169","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"56","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"6","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"33% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"11","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}