Z3Py スニペット:
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
参照していますか?
ありがとう。