🤖 AI Summary
String constraint solving faces a fundamental trade-off between expressiveness, efficiency, and strategy complexity. Method: This paper proposes a generic solving framework based on regular-language preimage and postimage propagation: it iteratively computes the preimages/postimages of regular constraints under string operations (e.g., concatenation, replacement) to progressively narrow variable domains and determine formula satisfiability. Contribution/Results: We establish, for the first time, theoretical completeness and correctness of this approach for the most expressive decidable fragment of string constraints known to date. Technically, we implement symbolic regular propagation and integrate it into the open-source solver OSTRICH. Experimental evaluation on random Post Correspondence Problem (PCP) and bioinformatics benchmarks demonstrates substantial performance gains over state-of-the-art solvers, validating both theoretical soundness and practical applicability.
📝 Abstract
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 post-images 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.