When eating spaghetti, one should have the sauce and noodles mixed instead of eating them separately. We argue that also in string solving, word equations and regular constraints are better mixed together than approached separately as in most current string solvers. We propose a fast algorithm, complete for the fragment of chain-free constraints, in which word equations and regular constraints are tightly integrated and exchange information, efficiently pruning the cases generated by each other and limiting possible combinatorial explosion. The algorithm is based on a novel language-based characterisation of satisfiability of word equations with regular constraints. We experimentally show that our prototype implementation is competitive with the best string solvers and even superior in that it is the fastest on difficult examples and has the least number of timeouts.
翻译:在吃意大利面条时,人们应该把酱汁和面条混在一起,而不是分开吃。我们争辩说,在弦解答、字式方程式和常规限制方面,也比在大多数当前弦解答者中分开处理要好。 我们提出了一个快速算法,完全可以分解链条限制的碎片,在这种算法中,字式和常规限制是紧密结合的,交流信息,有效地处理彼此产生的案例,并限制可能的组合爆炸。这种算法基于基于语言的新颖的特征,即经常限制的单词方程式的可比较性。我们实验性地表明,我们的原型执行与最好的弦解答者相比是竞争性的,甚至更高,因为它在困难的例子中是最快的,超时数最少。