Progressive Reasoning Over Recursively-Defined Strings

COMPUTER AIDED VERIFICATION, (CAV 2016), PT I(2016)

引用 70|浏览121
暂无评分
摘要
We consider the problem of reasoning over an expressive constraint language for unbounded strings. The difficulty comes from "recursively defined" functions such as replace, making state-of-the-art algorithms non-terminating. Our first contribution is a progressive search algorithm to not only mitigate the problem of non-terminating reasoning but also guide the search towards a "minimal solution" when the input formula is in fact satisfiable. We have implemented our method using the state-of-the-art Z3 framework. Importantly, we have enabled conflict clause learning for string theory so that our solver can be used effectively in the setting of program verification. Finally, our experimental evaluation shows leadership in a large benchmark suite, and a first deployment for another benchmark suite which requires reasoning about string formulas of a class that has not been solved before.
更多
查看译文
关键词
String solving, Progressive search, Termination, Web security
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要