Z3Py片断:了解Z3模型
x = Int('x')
fun = Function('fun', IntSort(), IntSort(), IntSort())
phi = ForAll(x, (fun(x, x) != x))
print phi
solve(phi)
永久:http://rise4fun.com/Z3Py/KZbR
输出:
∀x : fun(x, x) ≠ x
[elem!0 = 0,
fun!6 = [(1, 1) → 2, else → 1],
fun = [else → fun!6(ζ5(ν0), ζ5(ν1))],
ζ5 = [1 → 1, else → 0]]
问题: 我想了解Z3生成的模型。我有以下怀疑。
- 在由z3生成的模型中,
fun
只有else
部分。所以乍看之下,不管参数如何,它看起来都有一个单一的值。但仔细一看,好像v0
和v1
是fun
的形式参数。这是否有一些约定? elem!0
是指哪个变量?
谢谢。