Solving String Split Constraints via Structural Relaxation
String operations are integral to program analysis, yet reasoning about the ubiquitous split operation remains a challenge. SMT solvers have difficulty with split because it transforms a string into a variable-length sequence, creating a structural mismatch that leads to uninterpreted abstractions or unsound bounded approximations. In this paper, we bridge this gap with a precise, SMT-LIB-compliant encoding. Our key insight is structural relaxation: exploiting the sparsity of real-world constraints, we decouple the split structure from strict length requirements, materializing segments only on demand. We further introduce position-aware constraints to handle complex regex-based delimiters without overlaps. We evaluated our framework on 580 benchmarks using four leading string solvers. Our encoding enables off-the-shelf solvers to handle split constraints, solving 157 out of 168 real-world benchmarks and outperforming current baselines. Notably, our framework involves complex string operations, revealing 12 previously unknown implementation bugs in mainstream solvers.
Authors
- Baoquan Cui (ORCID: https://orcid.org/0009-0004-8218-1112)
- Fuqi Jia (ORCID: https://orcid.org/0000-0001-9947-2187)
- Jian Zhang (ORCID: https://orcid.org/0000-0001-8523-3505)
- Feifei Ma (ORCID: https://orcid.org/0009-0000-9279-4263)
- Rui Han (ORCID: https://orcid.org/0000-0002-9021-2474)
- Yuhang Dong
- Ziheng Wang (ORCID: https://orcid.org/0009-0002-4179-4161)
Institutions
- Chinese Academy of Sciences (CN)
- Institute of Software (CN)
- University of Chinese Academy of Sciences (CN)
Publication Details
- Journal
- Proceedings of the ACM on software engineering.
- Published
- 2026-10-01
- DOI
- https://doi.org/10.1145/3832221
- Primary Topic
- Software Testing and Debugging Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00