如何在Z3Py中实现AND逻辑

时间:2018-07-31 19:45:30

标签: python z3 smt z3py sat

我想实现一个需要在Z3Py中使用AND逻辑的约束。假设我们有两个变量ab,我只想添加一个需要a == 0b == 1的约束。在Z3中应该有几种方法可以做到这一点,例如s.add(a == 0, b == 0)s.add(And(a==0, b==0)。但是,我尝试了一种方法s.add(a == 0 and b == 0)。此方法无效,代码为:

from z3 import *

a = Int('a')
b = Int('b')

s = Solver()

#s.add(a == 0, b ==1)
#s.add(And(a == 0, b == 1))
s.add(a == 0 and b == 1)

print(s.check())
print(s.model())

此文件的输出为a = 0,这意味着b被忽略了……有人可以解释为什么会这样吗?似乎And(a == 0, b == 1)a == 0 and b == 1在Z3Py中是不同的。

0 个答案:

没有答案