我们可以限制 z3 中每个变量的取值范围吗?

Can we restrict a range of values for each variable in z3?

比如我有一个约束条件x + y > 100。我不希望 z3 将 x 的值设为 1 或 2,并且我不希望 z3 将 y 的值也设为 1 或 2。

因此,x 和 y 可以是除 1 或 2 之外的任何数字。

我们可以对 z3 实施这样的限制吗?

谢谢!

当然.. 只需断言x > 2 AND y > 2。在 z3py 中:

from z3 import *

x = Int('x')
y = Int('y')

s = Solver()
s.add (x > 2)
s.add (y > 2)
s.add (x+y > 100)

s.check()
print s.model()

Z3 打印:

$ python a.py
[y = 3, x = 98]