为什么Z3在这个非线性整数算术例子中返回未知?

时间:2015-10-22 12:56:24

标签: z3 smt

我在非线性整数算术中有一个简单的例子,即搜索毕达哥拉斯三元组。根据我在相关问题中看到的内容(见下文),我希望Z3找到解决这个问题的方法,但它会返回“未知”。以下是SMT-LIB v2中的示例:

{{1}}

有一些相关的问题,最值得注意的是:

1 个答案:

答案 0 :(得分:0)

似乎Z3不会尝试通过钻头爆破找到解决方案,除非变量具有有限范围。使用以下命令替换(check-sat)将找到解决方案:

(check-sat-using (then (using-params add-bounds :add-bound-lower -100 :add-bound-upper 100) smt))

或者,可以添加断言语句,强制每个变量具有一定的有限范围。