z3py代码段
x = Int('x')
s = Solver()
s.add(x <= x)
print s.check()
print s.model()
print s.model().sexpr()
输出:
sat
[]
x
的任何值都可以,但z3
会返回空模型。
模型中缺少的自由变量x
是否表明任何整数值都是有效模型?
答案 0 :(得分:7)
是的,在Z3中,如果模型中没有出现常量(例如x
),那么它就是“不关心”。也就是说,x
的任何值都将满足公式。在评估常量的值时,我们可以启用“模型完成”。也就是说,Z3将对“不关心”符号使用任意解释。以下是http://rise4fun.com/Z3Py/bvVO
x = Int('x')
s = Solver()
s.add(x <= x)
print s.check()
m = s.model()
print m.evaluate(x)
print m.evaluate(x, model_completion=True)
print m