一句话:提出并实现正则约束传播方法,可可靠且完备地求解一大类字符串约束,并显著提升 OSTRICH 求解器性能。
字符串求解在程序分析与验证中很重要,但现有求解器策略复杂。本文研究简单通用的正则约束传播(RCP):反复计算字符串函数下正则语言的前像/后像,推断变量可能取值,直至发现冲突或判定可满足性;适用于连接、替换及几乎所有字符串转换。理论上,作者证明 RCP 对一大类字符串约束可靠且完备,涵盖 straight-line 与 chain-free 这两个可判定片段。实践上,他们在 OSTRICH 中实现 RCP,实验显示其显著提升性能,使 OSTRICH 具备竞争力,并在随机 PCP 和生物信息学基准上大幅优于其他求解器,表明与其他技术结合可进一步提速。
The past decade has witnessed substantial developments in string solving. Motivated by the complexity of string solving strategies adopted in existing string solvers, we investigate a simple and generic method for solving string constraints: regular constraint propagation. The method repeatedly computes pre- or postimages of regular languages under the string functions present in a string formula, inferring more and more knowledge about the possible values of string variables, until either a conflict is found or satisfiability of the string formula can be concluded. Such a propagation strategy is applicable to string constraints with multiple operations like concatenation, replace, and almost all flavors of string transductions. We demonstrate the generality and effectiveness of this method theoretically and experimentally. On the theoretical side, we show that RCP is sound and complete for a large fragment of string constraints, subsuming both straight-line and chain-free constraints, two of the most expressive decidable fragments for which some modern string solvers provide formal completeness guarantees. On the practical side, we implement regular constraint propagation within the open-source string solver OSTRICH. Our experimental evaluation shows that this addition significantly improves OSTRICH’s performance and makes it competitive with existing solvers. In fact, it substantially outperforms other solvers on random PCP and bioinformatics benchmarks. The results also suggest that incorporating regular constraint propagation alongside other techniques could lead to substantial performance gains for existing solvers.
@article{paperbot2959,
title = {The Power of Regular Constraint Propagation},
author = {Matthew Hague and Artur Jeż and Anthony Widjaja Lin and Oliver Markgraf and Philipp Rümmer},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA2},
year = {2025},
doi = {10.1145/3763165}
}