z3python:没有XOR运算符?

时间:2013-01-09 05:55:37

标签: z3 z3py

我在Z3 python中有这段代码:

x = Bool('x')
y = Bool('y')
z = Bool('z')
z == (x xor y)
s = Solver()
s.add(z == True)
print s.check()

但是这段代码在运行时会报告以下错误:

c.py(4): error: invalid syntax

如果我将xor替换为and,则没有问题。那么这意味着不支持XOR?

1 个答案:

答案 0 :(得分:3)

您应该使用Xor(a, b)。此外,要创建表示公式a and b的Z3表达式,我们必须使用And(a, b)。在Python中,我们不能重载运算符andor。 以下是Xoravailable online at rise4fun)的示例。

x = Bool('x')
y = Bool('y')
z = Xor(x, y)
s = Solver()
s.add(z)
print s.check()
print s.model()