arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2303.01142cs.LO
收藏

一个符号算法的情况下分裂规则在解决词的约束与扩展(技术报告)

A Symbolic Algorithm for the Case-Split Rule in Solving Word Constraints with Extensions (Technical Report)

Yu-Fang Chen, Vojtěch Havlena, Ondřej Lengál, Andrea Turrini

摘要:

案例分割是当前字符串约束理论决策过程中的一个核心证明规则。它的使用是字符串约束求解中状态空间爆炸的主要原因,因为它是在证明树中创建分支的唯一规则。此外,显式处理的情况下分裂规则可能会导致重新计算相同的任务在多个分支的证明树。在本文中,我们提出了一个符号算法,显着减少这样的冗余。特别是,我们将字符串约束编码为正则语言,并将证明规则编码为理性转换器。这允许我们在证明树中只执行一次类似的步骤,从而缓解状态空间爆炸。我们还扩展了编码,以处理字符串约束,长度约束和常规约束的任意布尔组合。在我们的实验结果中,我们验证了我们的技术在许多其他最先进的求解器无法提供答案的实际情况下有效;我们的Python原型实现解决了超过50%的其他工具无法解决的字符串约束。

英文摘要:

Case split is a core proof rule in current decision procedures for the theory of string constraints. Its use is the primary cause of the state space explosion in string constraint solving, since it is the only rule that creates branches in the proof tree. Moreover, explicit handling of the case split rule may cause recomputation of the same tasks in multiple branches of the proof tree. In this paper, we propose a symbolic algorithm that significantly reduces such a redundancy. In particular, we encode a string constraint as a regular language and proof rules as rational transducers. This allows us to perform similar steps in the proof tree only once, alleviating the state space explosion. We also extend the encoding to handle arbitrary Boolean combinations of string constraints, length constraints, and regular constraints. In our experimental results, we validate that our technique works in many practical cases where other state-of-the-art solvers fail to provide an answer; our Python prototype implementation solved over 50 % of string constraints that could not be solved by the other tools.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑