【发布时间】:2016-04-08 00:02:08
【问题描述】:
是否有可能让 Z3Py 在合理的时间内生成更多的反例?
我可以使用z3.prove 生成一个反例,如下所示:
import z3
x = z3.Real("x")
rule = x > 0
goal = x < 0
z3.prove(z3.Implies(rule, goal))
给出以下输出,
counterexample
[x = 1]
但是如果我想产生更多的反例呢?
是不是唯一的方法是根据反例逐步添加规则?
对于上述情况,我可以通过这样做得到一个不同的反例,
z3.prove(z3.Implies(z3.And(rule, x!=1), goal))
但我认为当涉及到许多规则时这会很慢,所以我希望有一个更快的方法。
【问题讨论】:
-
见this answer。您也可以使用增量求解。