z3:获取模型的决策变量

时间:2019-04-10 08:54:14

标签: python z3 z3py

以以下示例为例:

from z3 import *

a, b, c, d, e = Bools('a b c d e')
s = Solver()
s.add(Implies(a, b))
s.add(Implies(c, d))
s.add(a)
print s.check()
print s.model()

z3返回:

sat
[a = True, b = True, c = False, d = False]

这是一个模型,其中c和d为假。但是实际上这两个变量可以是true或false。似乎z3返回了默认情况下将False分配给决策变量(即值无关紧要的变量)的模型。有什么方法可以获取这些决策变量?在此示例中,它是[c, d, e]

0 个答案:

没有答案