Ü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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage