私はZ3が初めてで、オンラインのpythonチュートリアルをチェックしていました。
次に、BitVecs でオーバーフローの動作を確認できると考えました。
私はこのコードを書きました:
x = BitVec('x', 3)
y = Int('y')
solve(BV2Int(x) == y, Not(BV2Int(x + 1) == (y + 1)))
そして、私は [y = 7, x = 7] を期待していました (つまり、値が等しいが、x + 1 が 0 になり、y + 1 が 8 になるため、後続の値が等しくない場合)
しかし、Z3 は [y = 0, x = 0] と答えます。
私は何を間違っていますか?