Steps to reproduce:
- Set Z3 timeout for the WW-project to 60s
- Try to prove the following program correct:
Integer x
Integer y
Integer z := 0
Integer oldX := x
Integer oldY := y
while (y != 0)
_invariant y >= 0 && oldX * oldY = x * y + z
{
if (y / 2 * 2 != y) {
z := x + z
y := y / 2
x := 2 * x
}
if (y / 2 * 2 = y) {
y := y / 2
x := 2 * x
}
}
_assert z = oldX * oldY
WW immediately reports that Z3 has reached the timeout but Z3 is still running in the background.
Steps to reproduce:
Integer x Integer y Integer z := 0 Integer oldX := x Integer oldY := y while (y != 0) _invariant y >= 0 && oldX * oldY = x * y + z { if (y / 2 * 2 != y) { z := x + z y := y / 2 x := 2 * x } if (y / 2 * 2 = y) { y := y / 2 x := 2 * x } } _assert z = oldX * oldYWW immediately reports that Z3 has reached the timeout but Z3 is still running in the background.