{"id":"https://openalex.org/W4411267592","doi":"https://doi.org/10.1145/3729273","title":"A Uniform Framework for Handling Position Constraints in String Solving","display_name":"A Uniform Framework for Handling Position Constraints in String Solving","publication_year":2025,"publication_date":"2025-06-10","ids":{"openalex":"https://openalex.org/W4411267592","doi":"https://doi.org/10.1145/3729273"},"language":"en","primary_location":{"id":"doi:10.1145/3729273","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729273","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3729273","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5048614307","display_name":"Yu\u2010Fang Chen","orcid":"https://orcid.org/0000-0003-2872-0336"},"institutions":[{"id":"https://openalex.org/I84653119","display_name":"Academia Sinica","ror":"https://ror.org/05bxb3784","country_code":"TW","type":"facility","lineage":["https://openalex.org/I84653119"]}],"countries":["TW"],"is_corresponding":false,"raw_author_name":"Yu-Fang Chen","raw_affiliation_strings":["Academia Sinica, Taipei, Taiwan"],"raw_orcid":"https://orcid.org/0000-0003-2872-0336","affiliations":[{"raw_affiliation_string":"Academia Sinica, Taipei, Taiwan","institution_ids":["https://openalex.org/I84653119"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5030524096","display_name":"Vojt\u011bch Havlena","orcid":"https://orcid.org/0000-0003-4375-7954"},"institutions":[{"id":"https://openalex.org/I60587646","display_name":"Brno University of Technology","ror":"https://ror.org/03613d656","country_code":"CZ","type":"education","lineage":["https://openalex.org/I60587646"]}],"countries":["CZ"],"is_corresponding":false,"raw_author_name":"Vojt\u011bch Havlena","raw_affiliation_strings":["Brno University of Technology, Brno, Czech Republic"],"raw_orcid":"https://orcid.org/0000-0003-4375-7954","affiliations":[{"raw_affiliation_string":"Brno University of Technology, Brno, Czech Republic","institution_ids":["https://openalex.org/I60587646"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5094282469","display_name":"Michal He\u010dko","orcid":"https://orcid.org/0009-0003-2428-8547"},"institutions":[{"id":"https://openalex.org/I60587646","display_name":"Brno University of Technology","ror":"https://ror.org/03613d656","country_code":"CZ","type":"education","lineage":["https://openalex.org/I60587646"]}],"countries":["CZ"],"is_corresponding":false,"raw_author_name":"Michal He\u010dko","raw_affiliation_strings":["Brno University of Technology, Brno, Czech Republic"],"raw_orcid":"https://orcid.org/0009-0003-2428-8547","affiliations":[{"raw_affiliation_string":"Brno University of Technology, Brno, Czech Republic","institution_ids":["https://openalex.org/I60587646"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5059358773","display_name":"Luk\u00e1\u0161 Hol\u00edk","orcid":"https://orcid.org/0000-0001-6957-1651"},"institutions":[{"id":"https://openalex.org/I60587646","display_name":"Brno University of Technology","ror":"https://ror.org/03613d656","country_code":"CZ","type":"education","lineage":["https://openalex.org/I60587646"]},{"id":"https://openalex.org/I891191580","display_name":"Aalborg University","ror":"https://ror.org/04m5j1k67","country_code":"DK","type":"education","lineage":["https://openalex.org/I891191580"]}],"countries":["CZ","DK"],"is_corresponding":false,"raw_author_name":"Luk\u00e1\u0161 Hol\u00edk","raw_affiliation_strings":["Aalborg University, Aalborg, Denmark","Brno University of Technology, Brno, Czech Republic"],"raw_orcid":"https://orcid.org/0000-0001-6957-1651","affiliations":[{"raw_affiliation_string":"Aalborg University, Aalborg, Denmark","institution_ids":["https://openalex.org/I891191580"]},{"raw_affiliation_string":"Brno University of Technology, Brno, Czech Republic","institution_ids":["https://openalex.org/I60587646"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5063557188","display_name":"Ond\u0159ej Leng\u00e1l","orcid":"https://orcid.org/0000-0002-3038-5875"},"institutions":[{"id":"https://openalex.org/I60587646","display_name":"Brno University of Technology","ror":"https://ror.org/03613d656","country_code":"CZ","type":"education","lineage":["https://openalex.org/I60587646"]}],"countries":["CZ"],"is_corresponding":false,"raw_author_name":"Ond\u0159ej Leng\u00e1l","raw_affiliation_strings":["Brno University of Technology, Brno, Czech Republic"],"raw_orcid":"https://orcid.org/0000-0002-3038-5875","affiliations":[{"raw_affiliation_string":"Brno University of Technology, Brno, Czech Republic","institution_ids":["https://openalex.org/I60587646"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":5,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.17604596,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"9","issue":"PLDI","first_page":"550","last_page":"575"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T12479","display_name":"Web Application Security Vulnerabilities","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T12479","display_name":"Web Application Security Vulnerabilities","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9932000041007996,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10181","display_name":"Natural Language Processing Techniques","score":0.9861999750137329,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/string","display_name":"String (physics)","score":0.7553761005401611},{"id":"https://openalex.org/keywords/decidability","display_name":"Decidability","score":0.6548673510551453},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.5884882211685181},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.5812747478485107},{"id":"https://openalex.org/keywords/position","display_name":"Position (finance)","score":0.5053539872169495},{"id":"https://openalex.org/keywords/reduction","display_name":"Reduction (mathematics)","score":0.48163357377052307},{"id":"https://openalex.org/keywords/generality","display_name":"Generality","score":0.4534747898578644},{"id":"https://openalex.org/keywords/mathematical-optimization","display_name":"Mathematical optimization","score":0.3792281746864319},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.361936092376709},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.34353357553482056},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.31112921237945557}],"concepts":[{"id":"https://openalex.org/C157486923","wikidata":"https://www.wikidata.org/wiki/Q1376436","display_name":"String (physics)","level":2,"score":0.7553761005401611},{"id":"https://openalex.org/C153269930","wikidata":"https://www.wikidata.org/wiki/Q430001","display_name":"Decidability","level":2,"score":0.6548673510551453},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.5884882211685181},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.5812747478485107},{"id":"https://openalex.org/C198082294","wikidata":"https://www.wikidata.org/wiki/Q3399648","display_name":"Position (finance)","level":2,"score":0.5053539872169495},{"id":"https://openalex.org/C111335779","wikidata":"https://www.wikidata.org/wiki/Q3454686","display_name":"Reduction (mathematics)","level":2,"score":0.48163357377052307},{"id":"https://openalex.org/C2780767217","wikidata":"https://www.wikidata.org/wiki/Q5532421","display_name":"Generality","level":2,"score":0.4534747898578644},{"id":"https://openalex.org/C126255220","wikidata":"https://www.wikidata.org/wiki/Q141495","display_name":"Mathematical optimization","level":1,"score":0.3792281746864319},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.361936092376709},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.34353357553482056},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.31112921237945557},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C15744967","wikidata":"https://www.wikidata.org/wiki/Q9418","display_name":"Psychology","level":0,"score":0.0},{"id":"https://openalex.org/C542102704","wikidata":"https://www.wikidata.org/wiki/Q183257","display_name":"Psychotherapist","level":1,"score":0.0},{"id":"https://openalex.org/C10138342","wikidata":"https://www.wikidata.org/wiki/Q43015","display_name":"Finance","level":1,"score":0.0},{"id":"https://openalex.org/C37914503","wikidata":"https://www.wikidata.org/wiki/Q156495","display_name":"Mathematical physics","level":1,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/3729273","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729273","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:dspace.vut.cz:11012/255172","is_oa":true,"landing_page_url":"http://hdl.handle.net/11012/255172","pdf_url":null,"source":{"id":"https://openalex.org/S4306400317","display_name":"Brno University of Technology Digital Library (Brno University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I60587646","host_organization_name":"Brno University of Technology","host_organization_lineage":["https://openalex.org/I60587646"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":null,"raw_type":"publishedVersion"},{"id":"pmh:oai:pure.atira.dk:publications/70971dd2-3776-406b-96fe-61a50de472db","is_oa":true,"landing_page_url":"https://vbn.aau.dk/da/publications/70971dd2-3776-406b-96fe-61a50de472db","pdf_url":"https://vbn.aau.dk/ws/files/807601372/3729273.pdf","source":{"id":"https://openalex.org/S4306401731","display_name":"VBN Forskningsportal (Aalborg Universitet)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I891191580","host_organization_name":"Aalborg University","host_organization_lineage":["https://openalex.org/I891191580"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Chen, Y-F, Havlena, V, Hecko, M, Hol\u00edk, L & Leng\u00e1l, O 2025, 'A Uniform Framework for Handling Position Constraints in String Solving', Proceedings of the ACM on Programming Languages, vol. 9, no. PLDI, 169, pp. 550-575. https://doi.org/10.1145/3729273","raw_type":"info:eu-repo/semantics/publishedVersion"},{"id":"pmh:oai:https://dspace.vut.cz:11012/255172","is_oa":true,"landing_page_url":"https://hdl.handle.net/11012/255172","pdf_url":null,"source":{"id":"https://openalex.org/S4306400317","display_name":"Brno University of Technology Digital Library (Brno University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I60587646","host_organization_name":"Brno University of Technology","host_organization_lineage":["https://openalex.org/I60587646"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"publishedVersion"}],"best_oa_location":{"id":"doi:10.1145/3729273","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729273","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions","score":0.6600000262260437}],"awards":[{"id":"https://openalex.org/G4185487616","display_name":null,"funder_award_id":"LL1908","funder_id":"https://openalex.org/F4320321005","funder_display_name":"Ministerstvo \u0160kolstv\u00ed, Ml\u00e1de\u017ee a T\u011blov\u00fdchovy"},{"id":"https://openalex.org/G6728435477","display_name":null,"funder_award_id":"FIT-S-23-8151","funder_id":"https://openalex.org/F4320336543","funder_display_name":"Fakulta Informa\u010dn\u00edch Technologi\u00ed, Vysok\u00e9 U\u010den\u00ed Technick\u00e9 v Brn\u011b"},{"id":"https://openalex.org/G8829683234","display_name":null,"funder_award_id":"25-18318S","funder_id":"https://openalex.org/F4320321006","funder_display_name":"Grantov\u00e1 Agentura \u010cesk\u00e9 Republiky"}],"funders":[{"id":"https://openalex.org/F4320321005","display_name":"Ministerstvo \u0160kolstv\u00ed, Ml\u00e1de\u017ee a T\u011blov\u00fdchovy","ror":"https://ror.org/037n8p820"},{"id":"https://openalex.org/F4320321006","display_name":"Grantov\u00e1 Agentura \u010cesk\u00e9 Republiky","ror":"https://ror.org/01pv73b02"},{"id":"https://openalex.org/F4320336543","display_name":"Fakulta Informa\u010dn\u00edch Technologi\u00ed, Vysok\u00e9 U\u010den\u00ed Technick\u00e9 v Brn\u011b","ror":null}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":73,"referenced_works":["https://openalex.org/W118031093","https://openalex.org/W254881558","https://openalex.org/W984481437","https://openalex.org/W1017176722","https://openalex.org/W1480909796","https://openalex.org/W1536511644","https://openalex.org/W1551851178","https://openalex.org/W1552077729","https://openalex.org/W1554005697","https://openalex.org/W1599228120","https://openalex.org/W1810306334","https://openalex.org/W1952344271","https://openalex.org/W1976444533","https://openalex.org/W1982132104","https://openalex.org/W1989058323","https://openalex.org/W1993370765","https://openalex.org/W2005759788","https://openalex.org/W2017035494","https://openalex.org/W2017315323","https://openalex.org/W2023036777","https://openalex.org/W2044901139","https://openalex.org/W2080462615","https://openalex.org/W2103658959","https://openalex.org/W2117402063","https://openalex.org/W2153128123","https://openalex.org/W2161510308","https://openalex.org/W2295723447","https://openalex.org/W2295791966","https://openalex.org/W2330747214","https://openalex.org/W2339322325","https://openalex.org/W2501292226","https://openalex.org/W2619859861","https://openalex.org/W2623287016","https://openalex.org/W2626453174","https://openalex.org/W2736027423","https://openalex.org/W2747214722","https://openalex.org/W2767683523","https://openalex.org/W2776845434","https://openalex.org/W2897835509","https://openalex.org/W2899573209","https://openalex.org/W2910081537","https://openalex.org/W2959755401","https://openalex.org/W2963054422","https://openalex.org/W2981614836","https://openalex.org/W3016735580","https://openalex.org/W3038336498","https://openalex.org/W3048452377","https://openalex.org/W3095013546","https://openalex.org/W3108905228","https://openalex.org/W3122489126","https://openalex.org/W3186328512","https://openalex.org/W3207915520","https://openalex.org/W3211522117","https://openalex.org/W3212228192","https://openalex.org/W3212912612","https://openalex.org/W4225922019","https://openalex.org/W4251691259","https://openalex.org/W4289874354","https://openalex.org/W4290087439","https://openalex.org/W4294217152","https://openalex.org/W4311421541","https://openalex.org/W4312434524","https://openalex.org/W4323026879","https://openalex.org/W4323275637","https://openalex.org/W4387667063","https://openalex.org/W4389559334","https://openalex.org/W4393870985","https://openalex.org/W4393943541","https://openalex.org/W4401023953","https://openalex.org/W4403935746","https://openalex.org/W6648519890","https://openalex.org/W6892449454","https://openalex.org/W6912221233"],"related_works":["https://openalex.org/W2045049461","https://openalex.org/W1978893398","https://openalex.org/W2201908702","https://openalex.org/W4381094582","https://openalex.org/W2369625323","https://openalex.org/W2364579609","https://openalex.org/W1977906818","https://openalex.org/W1522139108","https://openalex.org/W2353528968","https://openalex.org/W1017176722"],"abstract_inverted_index":{"We":[0],"introduce":[1],"a":[2,66,71,177,193],"novel":[3],"decision":[4],"procedure":[5,37],"for":[6,85,127,184],"solving":[7,79],"the":[8,42,50,62,75,97,135,164,197,203,206],"class":[9],"of":[10,32,41,65,140,180,202],"position":[11,80,155,214],"string":[12,16,33,114,129],"constraints,":[13,156],"which":[14,101,112,131,157,185],"includes":[15],"disequalities,":[17],"\u00acprefixof,":[18],"\u00acsuffixof,":[19],"str.at,":[20],"and":[21,84,108,144,191],"\u00acstr.at.":[22],"These":[23],"constraints":[24,43,81,110],"are":[25],"generated":[26],"frequently":[27],"in":[28,138],"almost":[29],"any":[30],"application":[31],"constraint":[34],"solving.":[35],"Our":[36,122,200],"avoids":[38],"expensive":[39],"encoding":[40],"to":[44,52,77,151,159,175,195],"word":[45,106],"equations":[46,107],"and,":[47],"instead,":[48],"reduces":[49],"problem":[51],"checking":[53],"conflicts":[54],"on":[55,154,213],"positions":[56],"satisfying":[57],"an":[58],"integerconstraint":[59],"obtained":[60],"from":[61],"Parikh":[63],"image":[64],"polynomial-sized":[67],"finite":[68],"automaton":[69],"with":[70],"special":[72],"structure.":[73],"By":[74],"reduction":[76],"counting,":[78],"becomes":[82],"NP-complete":[83],"some":[86],"cases":[87],"even":[88],"falls":[89],"into":[90],"PTime.":[91],"This":[92,147],"is":[93,124],"much":[94],"cheaper":[95],"than":[96],"previously":[98],"used":[99,103,158],"techniques,":[100],"either":[102],"reductions":[104],"generating":[105],"length":[109],"(for":[111],"modern":[113],"solvers":[115],"use":[116],"exponential-space":[117],"algorithms)":[118],"or":[119],"incomplete":[120],"techniques.":[121],"method":[123],"relevant":[125],"especially":[126],"automata-based":[128],"solvers,":[130],"have":[132],"recently":[133],"achieved":[134],"best":[136],"results":[137],"terms":[139],"practical":[141],"efficiency,":[142],"generality,":[143],"completeness":[145],"guarantees.":[146],"work":[148],"allows":[149],"them":[150],"excel":[152],"also":[153],"be":[160,173],"their":[161],"weakness.":[162],"Besides":[163],"efficiency":[165],"gains,":[166],"we":[167],"show":[168],"that":[169],"our":[170],"framework":[171],"may":[172],"extended":[174],"solve":[176,196],"large":[178],"fragment":[179],"\u00accontains":[181],"(in":[182],"NExpTime),":[183],"decidability":[186],"has":[187],"been":[188],"long":[189],"open,":[190],"gives":[192],"hope":[194],"general":[198],"problem.":[199],"implementation":[201],"technique":[204],"within":[205],"Z3-Noodler":[207],"solver":[208],"significantly":[209],"improves":[210],"its":[211],"performance":[212],"constraints.":[215]},"counts_by_year":[],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-06-14T00:00:00"}
