Z3 的路线图是否支持递归函数?

Is support for recursive functions on the roadmap for Z3?

"define-fun-rec" 语法已于 6 月 28 日添加到标准中。 CVC4 支持它。我很好奇目前是否支持解决递归函数的约束?谢谢。

当然可以。

请注意,您可以使用 Z3 将递归函数编码为 Horn 子句来推理递归函数。 Z3 中提供了几个 Horn 子句后端。 程序验证系统,尤其是 Boogie,也非常适合推理递归过程。 代替句法支持,您可以遵循建议的速记 http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.5-r2015-06-28.pdf, 在第 58 页。当然,您还可以使用其他间接编码,如 SMT 中递归函数的模型查找,http://smt2015.csl.sri.com/wp-content/uploads/2015/06/2015-Reynolds-Blanchette-Tinelli-Model-Finding-for-Recursive-Functions-in-SMT.pdf