Überlauf mit Z3 prüfen
Ich bin neu in Z3 und habe das Online-Python-Tutorial gelesen.
Dann dachte ich, ich könnte das Überlaufverhalten in BitVecs überprüfen.
Ich habe diesen Code geschrieben:
x = BitVec('x', 3)
y = Int('y')
solve(BV2Int(x) == y, Not(BV2Int(x + 1) == (y + 1)))
und ich habe [y = 7, x = 7] erwartet (d. h. wenn die Werte gleich sind, die Nachfolger jedoch nicht, weil x + 1 0 und y + 1 8 sein werden)
Aber Z3 antwortet [y = 0, x = 0].
Was mache ich falsch?