{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,28]],"date-time":"2026-04-28T03:45:03Z","timestamp":1777347903080,"version":"3.51.4"},"publisher-location":"Cham","reference-count":33,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783031377020","type":"print"},{"value":"9783031377037","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,7,18]],"date-time":"2023-07-18T00:00:00Z","timestamp":1689638400000},"content-version":"vor","delay-in-days":198,"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>String solvers are automated-reasoning tools that can solve combinatorial problems over formal languages. They typically operate on restricted first-order logic formulas that include operations such as string concatenation, substring relationship, and regular expression matching. String solving thus amounts to deciding the satisfiability of such formulas. While there exists a variety of different string solvers, many string problems cannot be solved efficiently by any of them. We present a new approach to string solving that encodes input problems into propositional logic and leverages incremental SAT solving. We evaluate our approach on a broad set of benchmarks. On the logical fragment that our tool supports, it is competitive with state-of-the-art solvers. Our experiments also demonstrate that an eager SAT-based approach complements existing approaches to string solving in this specific fragment.<\/jats:p>","DOI":"10.1007\/978-3-031-37703-7_9","type":"book-chapter","created":{"date-parts":[[2023,7,17]],"date-time":"2023-07-17T17:02:15Z","timestamp":1689613335000},"page":"187-208","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":9,"title":["Solving String Constraints Using SAT"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6759-3304","authenticated-orcid":false,"given":"Kevin","family":"Lotz","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Amit","family":"Goel","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6284-380X","authenticated-orcid":false,"given":"Bruno","family":"Dutertre","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3522-3653","authenticated-orcid":false,"given":"Benjamin","family":"Kiesl-Reiter","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0984-8078","authenticated-orcid":false,"given":"Soonho","family":"Kong","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2136-0542","authenticated-orcid":false,"given":"Rupak","family":"Majumdar","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5422-2229","authenticated-orcid":false,"given":"Dirk","family":"Nowotka","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2023,7,18]]},"reference":[{"key":"9_CR1","doi-asserted-by":"publisher","unstructured":"Abdulla, P.A., et al.: Trau: SMT solver for string constraints. In: 2018 Formal Methods in Computer Aided Design (FMCAD), pp. 1\u20135 (2018). https:\/\/doi.org\/10.23919\/FMCAD.2018.8602997","DOI":"10.23919\/FMCAD.2018.8602997"},{"key":"9_CR2","doi-asserted-by":"publisher","unstructured":"Backes, J., et al.: Semantic-based automated reasoning for AWS access policies using SMT. In: 2018 Formal Methods in Computer Aided Design (FMCAD), pp. 1\u20139 (2018). https:\/\/doi.org\/10.23919\/FMCAD.2018.8602994","DOI":"10.23919\/FMCAD.2018.8602994"},{"key":"9_CR3","doi-asserted-by":"publisher","unstructured":"Barbosa, H., et al.: cvc5: A versatile and industrial-strength SMT solver. In: Fisman, D., Rosu, G. (eds.) Tools and Algorithms for the Construction and Analysis of Systems - 28th International Conference, TACAS 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2-7, 2022, Proceedings, Part I. Lecture Notes in Computer Science, vol. 13243, pp. 415\u2013442. Springer (2022). https:\/\/doi.org\/10.1007\/978-3-030-99524-9_24","DOI":"10.1007\/978-3-030-99524-9_24"},{"key":"9_CR4","unstructured":"Barrett, C., Fontaine, P., Tinelli, C.: The SMT-LIB Standard: Version 2.6. Tech. rep., Department of Computer Science, The University of Iowa (2017). www.smt-lib.org"},{"key":"9_CR5","doi-asserted-by":"publisher","first-page":"50","DOI":"10.1007\/978-3-030-85088-3_5","volume-title":"Combinatorics on Words","author":"M Berzish","year":"2021","unstructured":"Berzish, M., et al.: String theories involving regular membership predicates: From practice to theory and back. In: Lecroq, T., Puzynina, S. (eds.) Combinatorics on Words, pp. 50\u201364. Springer International Publishing, Cham (2021)"},{"key":"9_CR6","doi-asserted-by":"publisher","unstructured":"Berzish, M., et al.: Towards more efficient methods for solving regular-expression heavy string constraints. Theoretical Computer Science 943, 50\u201372 (2023). https:\/\/doi.org\/10.1016\/j.tcs.2022.12.009, https:\/\/www.sciencedirect.com\/science\/article\/pii\/S030439752200723X","DOI":"10.1016\/j.tcs.2022.12.009"},{"key":"9_CR7","doi-asserted-by":"publisher","first-page":"289","DOI":"10.1007\/978-3-030-81688-9_14","volume-title":"Computer Aided Verification","author":"M Berzish","year":"2021","unstructured":"Berzish, M., et al.: An SMT solver for regular expressions and linear arithmetic over string length. In: Silva, A., Leino, K.R.M. (eds.) Computer Aided Verification, pp. 289\u2013312. Springer International Publishing, Cham (2021)"},{"key":"9_CR8","doi-asserted-by":"publisher","unstructured":"Biere, A.: Bounded model checking. In: Biere, A., Heule, M., van Maaren, H., Walsh, T. (eds.) Handbook of Satisfiability, Frontiers in Artificial Intelligence and Applications, vol.\u00a0185, pp. 457\u2013481. IOS Press (2009). https:\/\/doi.org\/10.3233\/978-1-58603-929-5-457","DOI":"10.3233\/978-1-58603-929-5-457"},{"key":"9_CR9","unstructured":"Biere, A., Fazekas, K., Fleury, M., Heisinger, M.: CaDiCaL, Kissat, Paracooba, Plingeling and Treengeling entering the SAT Competition 2020. In: Balyo, T., Froleyks, N., Heule, M., Iser, M., J\u00e4rvisalo, M., Suda, M. (eds.) Proc. of SAT Competition 2020 - Solver and Benchmark Descriptions. Department of Computer Science Report Series B, vol. B-2020-1, pp. 51\u201353. University of Helsinki (2020)"},{"key":"9_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"70","DOI":"10.1007\/978-3-642-18275-4_7","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"AR Bradley","year":"2011","unstructured":"Bradley, A.R.: SAT-based model checking without unrolling. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 70\u201387. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-18275-4_7"},{"key":"9_CR11","doi-asserted-by":"publisher","unstructured":"Chen, T., Hague, M., Lin, A.W., R\u00fcmmer, P., Wu, Z.: Decision procedures for path feasibility of string-manipulating programs with complex operations. Proc. ACM Program. Lang. 3(POPL) (jan 2019). https:\/\/doi.org\/10.1145\/3290362","DOI":"10.1145\/3290362"},{"key":"9_CR12","doi-asserted-by":"publisher","first-page":"93","DOI":"10.1007\/978-3-030-30806-3_8","volume-title":"Reachability Problems","author":"JD Day","year":"2019","unstructured":"Day, J.D., Ehlers, T., Kulczynski, M., Manea, F., Nowotka, D., Poulsen, D.B.: On solving word equations using SAT. In: Filiot, E., Jungers, R., Potapov, I. (eds.) Reachability Problems, pp. 93\u2013106. Springer International Publishing, Cham (2019)"},{"key":"9_CR13","doi-asserted-by":"publisher","unstructured":"E\u00e9n, N., S\u00f6rensson, N.: Temporal induction by incremental SAT solving. Electronic Notes in Theoretical Computer Science 89(4), 543\u2013560 (2003). https:\/\/doi.org\/10.1016\/S1571-0661(05)82542-3, https:\/\/www.sciencedirect.com\/science\/article\/pii\/S1571066105825423, bMC\u20192003, First International Workshop on Bounded Model Checking","DOI":"10.1016\/S1571-0661(05)82542-3"},{"key":"9_CR14","unstructured":"Gao, Y., Moreira, N., Reis, R., Yu, S.: A survey on operational state complexity. CoRR abs\/1509.03254 (2015), http:\/\/arxiv.org\/abs\/1509.03254"},{"key":"9_CR15","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1007\/978-3-030-34175-6_2","volume-title":"Programming Languages and Systems","author":"H Hojjat","year":"2019","unstructured":"Hojjat, H., R\u00fcmmer, P., Shamakhi, A.: On strings in software model checking. In: Lin, A.W. (ed.) Programming Languages and Systems, pp. 19\u201330. Springer International Publishing, Cham (2019)"},{"key":"9_CR16","doi-asserted-by":"publisher","unstructured":"Jez, A.: Word Equations in Nondeterministic Linear Space. In: Chatzigiannakis, I., Indyk, P., Kuhn, F., Muscholl, A. (eds.) 44th International Colloquium on Automata, Languages, and Programming (ICALP 2017). Leibniz International Proceedings in Informatics (LIPIcs), vol.\u00a080, pp. 95:1\u201395:13. Schloss Dagstuhl\u2013Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany (2017). https:\/\/doi.org\/10.4230\/LIPIcs.ICALP.2017.95, http:\/\/drops.dagstuhl.de\/opus\/volltexte\/2017\/7408","DOI":"10.4230\/LIPIcs.ICALP.2017.95"},{"key":"9_CR17","doi-asserted-by":"publisher","unstructured":"Kan, S., Lin, A.W., R\u00fcmmer, P., Schrader, M.: Certistr: A certified string solver. In: Proceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs, pp. 210\u2013224. CPP 2022, Association for Computing Machinery, New York, NY, USA (2022). https:\/\/doi.org\/10.1145\/3497775.3503691","DOI":"10.1145\/3497775.3503691"},{"key":"9_CR18","doi-asserted-by":"publisher","unstructured":"Karhum\u00e4ki, J., Mignosi, F., Plandowski, W.: The expressibility of languages and relations by word equations. J. ACM 47(3), 483\u2013505 (may 2000). https:\/\/doi.org\/10.1145\/337244.337255","DOI":"10.1145\/337244.337255"},{"key":"9_CR19","doi-asserted-by":"publisher","unstructured":"Kiezun, A., Ganesh, V., Guo, P.J., Hooimeijer, P., Ernst, M.D.: Hampi: A solver for string constraints. In: Proceedings of the Eighteenth International Symposium on Software Testing and Analysis, pp. 105\u2013116. ISSTA \u201909, Association for Computing Machinery, New York, NY, USA (2009). https:\/\/doi.org\/10.1145\/1572272.1572286","DOI":"10.1145\/1572272.1572286"},{"key":"9_CR20","unstructured":"Klieber, W., Kwon, G.: Efficient CNF encoding for selecting 1 from N objects. In: Fourth Workshop on Constraints in Formal Verification (CFV) (2007)"},{"key":"9_CR21","doi-asserted-by":"publisher","first-page":"134","DOI":"10.1007\/978-3-031-15077-7_8","volume-title":"Model Checking Software","author":"M Kulczynski","year":"2022","unstructured":"Kulczynski, M., Lotz, K., Nowotka, D., Poulsen, D.B.: Solving string theories involving regular membership predicates using SAT. In: Legunsen, O., Rosu, G. (eds.) Model Checking Software, pp. 134\u2013151. Springer International Publishing, Cham (2022)"},{"key":"9_CR22","doi-asserted-by":"publisher","unstructured":"Kulczynski, M., Manea, F., Nowotka, D., Poulsen, D.B.: Zaligvinder: A generic test framework for string solvers. J. Softw.: Evolution and Process n\/a(n\/a), e2400. https:\/\/doi.org\/10.1002\/smr.2400, https:\/\/onlinelibrary.wiley.com\/doi\/abs\/10.1002\/smr.2400","DOI":"10.1002\/smr.2400"},{"key":"9_CR23","doi-asserted-by":"publisher","unstructured":"Makanin, G.S.: The problem of solvability of equations in a free semigroup. Math. USSR, Sb. 32, 129\u2013198 (1977). https:\/\/doi.org\/10.1070\/SM1977v032n02ABEH002376","DOI":"10.1070\/SM1977v032n02ABEH002376"},{"key":"9_CR24","doi-asserted-by":"publisher","first-page":"389","DOI":"10.1007\/978-3-030-90870-6_21","volume-title":"Formal Methods","author":"F Mora","year":"2021","unstructured":"Mora, F., Berzish, M., Kulczynski, M., Nowotka, D., Ganesh, V.: Z3str4: A multi-armed string solver. In: Huisman, M., P\u0103s\u0103reanu, C., Zhan, N. (eds.) Formal Methods, pp. 389\u2013406. Springer International Publishing, Cham (2021)"},{"key":"9_CR25","doi-asserted-by":"crossref","unstructured":"de Moura, L., Bj\u00f8rner, N.: Z3: An efficient SMT solver. In: Proceedings of the Theory and Practice of Software, 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 337\u2013340. TACAS\u201908\/ETAPS\u201908, Springer-Verlag, Berlin, Heidelberg (2008)","DOI":"10.1007\/978-3-540-78800-3_24"},{"key":"9_CR26","doi-asserted-by":"publisher","unstructured":"Murray, N.V.: Completely non-clausal theorem proving. Artificial Intelligence 18(1), 67\u201385 (1982). https:\/\/doi.org\/10.1016\/0004-3702(82)90011-X, https:\/\/www.sciencedirect.com\/science\/article\/pii\/000437028290011X","DOI":"10.1016\/0004-3702(82)90011-X"},{"key":"9_CR27","doi-asserted-by":"publisher","unstructured":"N\u00f6tzli, A., Reynolds, A., Barbosa, H., Barrett, C.W., Tinelli, C.: Even faster conflicts and lazier reductions for string solvers. In: Shoham, S., Vizel, Y. (eds.) Computer Aided Verification - 34th International Conference, CAV 2022, Haifa, Israel, August 7-10, 2022, Proceedings, Part II. Lecture Notes in Computer Science, vol. 13372, pp. 205\u2013226. Springer (2022). https:\/\/doi.org\/10.1007\/978-3-031-13188-2_11, https:\/\/doi.org\/10.1007\/978-3-031-13188-2_11","DOI":"10.1007\/978-3-031-13188-2_11"},{"key":"9_CR28","doi-asserted-by":"publisher","unstructured":"Plaisted, D.A., Greenbaum, S.: A structure-preserving clause form translation. Journal of Symbolic Computation 2(3), 293\u2013304 (1986). https:\/\/doi.org\/10.1016\/S0747-7171(86)80028-1, https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0747717186800281","DOI":"10.1016\/S0747-7171(86)80028-1"},{"key":"9_CR29","doi-asserted-by":"publisher","unstructured":"Plandowski, W.: Satisfiability of word equations with constants is in PSPACE. In: 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039), pp. 495\u2013500 (1999). https:\/\/doi.org\/10.1109\/SFFCS.1999.814622","DOI":"10.1109\/SFFCS.1999.814622"},{"key":"9_CR30","doi-asserted-by":"publisher","unstructured":"Rungta, N.: A billion SMT queries a day (invited paper). In: Shoham, S., Vizel, Y. (eds.) Computer Aided Verification. pp. 3\u201318. Springer International Publishing, Cham (2022). https:\/\/doi.org\/10.1007\/978-3-031-13185-1_1","DOI":"10.1007\/978-3-031-13185-1_1"},{"key":"9_CR31","doi-asserted-by":"publisher","unstructured":"Saxena, P., Akhawe, D., Hanna, S., Mao, F., McCamant, S., Song, D.: A symbolic execution framework for JavaScript. In: 2010 IEEE Symposium on Security and Privacy, pp. 513\u2013528 (2010). https:\/\/doi.org\/10.1109\/SP.2010.38","DOI":"10.1109\/SP.2010.38"},{"key":"9_CR32","doi-asserted-by":"publisher","unstructured":"Wetzler, N., Heule, M., Jr., W.A.H.: Drat-trim: Efficient checking and trimming using expressive clausal proofs. In: Sinz, C., Egly, U. (eds.) Theory and Applications of Satisfiability Testing - SAT 2014 - 17th International Conference, Held as Part of the Vienna Summer of Logic, VSL 2014, Vienna, Austria, July 14-17, 2014. Proceedings. Lecture Notes in Computer Science, vol.\u00a08561, pp. 422\u2013429. Springer (2014). https:\/\/doi.org\/10.1007\/978-3-319-09284-3_31, https:\/\/doi.org\/10.1007\/978-3-319-09284-3_31","DOI":"10.1007\/978-3-319-09284-3_31"},{"key":"9_CR33","doi-asserted-by":"publisher","unstructured":"Yu, F., Alkhalaf, M., Bultan, T., Ibarra, O.H.: Automata-based symbolic string analysis for vulnerability detection. Formal Methods Syst. Design 44(1), 44\u201370 (2014). https:\/\/doi.org\/10.1007\/s10703-013-0189-1, https:\/\/doi.org\/10.1007\/s10703-013-0189-1","DOI":"10.1007\/s10703-013-0189-1"}],"container-title":["Lecture Notes in Computer Science","Computer Aided Verification"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-37703-7_9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,8,26]],"date-time":"2023-08-26T11:03:48Z","timestamp":1693047828000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-37703-7_9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023]]},"ISBN":["9783031377020","9783031377037"],"references-count":33,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-37703-7_9","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":"18 July 2023","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"CAV","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Computer Aided Verification","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":"17 July 2023","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22 July 2023","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"35","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"cav2023","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/www.i-cav.org\/2023\/","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":"hotcrp","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"261","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":"67","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":"0","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":"26% - 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)"}}]}}