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
是指哪個變量?
謝謝。