🤖 AI Summary
This work addresses the string constraint satisfaction problem involving relational string constraints—such as replaceAll—and length constraints, proposing an efficient solving approach. It introduces a novel extension of automata-based stabilization techniques to finite-state transducer representations of relational constraints, thereby substantially reducing the costly concatenation-elimination operations inherent in prior methods. The approach further integrates strong heuristic strategies to optimize both the handling of length constraints and the overall search process. Experimental evaluation demonstrates that the proposed method significantly outperforms existing solvers on benchmarks featuring relational constraints, solving more instances and achieving speedups of several orders of magnitude.
📝 Abstract
We generalize an efficient automata-based approach to string constraint solving, the stabilization-based method behind the solver Z3-Noodler, to support relational constraints represented by finite-state transducers (useful, for example, for modeling replaceAll constraints). We focus on an efficient treatment of length constraints by reducing the need for expensive concatenation elimination, which is a major bottleneck in automata-based string solving. We also propose powerful heuristics that significantly improve performance in practice. Implemented on top of Z3-Noodler, our method vastly outperforms existing solvers on benchmarks with relational constraints. It solves more instances and runs orders of magnitude faster.