Z3 两个boolexpr是否相等

Z3 两个boolexpr是否相等,z3,Z3,给定两个boolexpr b1,b2 说 我们可以使用Z3的.NETAPI来了解b1和b2是否实际上是相同的约束吗?)(意味着b1和b2允许的x1和x2值相同)是。你想证明b1等于b2,你可以通过证明b1==b2的否定是不可满足的。下面的示例演示了如何在Z3Py中执行此操作,您可以在.NET API中使用基本相同的步骤: 对。你想证明b1等于b2,你可以通过证明b1==b2的否定是不可满足的。下面的示例演示了如何在Z3Py中执行此操作,您可以在.NET API中使用基本相同的步骤: b1=x1&

给定两个boolexpr b1,b2 说


我们可以使用Z3的.NETAPI来了解b1和b2是否实际上是相同的约束吗?)(意味着b1和b2允许的x1和x2值相同)

是。你想证明b1等于b2,你可以通过证明b1==b2的否定是不可满足的。下面的示例演示了如何在Z3Py中执行此操作,您可以在.NET API中使用基本相同的步骤:


对。你想证明b1等于b2,你可以通过证明b1==b2的否定是不可满足的。下面的示例演示了如何在Z3Py中执行此操作,您可以在.NET API中使用基本相同的步骤:

b1=x1>=4&&x2>=5
b2=x2>=5&&x1>=4
x1, x2 = Reals('x1 x2')

b1=And(x1>=4, x2>=5)
b2=And(x2>=5, x1>=4)

s = Solver()
proposition = b1 == b2 # assertion is whether b1 and b2 are equal
s.add(Not(proposition))
# proposition proved if negation of proposition is unsat
print s.check() # unsat 

b1=And(x1>=3, x2>=5) # note difference
b2=And(x2>=5, x1>=4)
s = Solver()
proposition = b1 == b2
s.add(Not(proposition))
print s.check() # sat