I'm verifying the following piece of code with boogie:
var v: int;
procedure main()
modifies v;
{
v := 0;
while(true)
invariant v > old(v) || v == 0;
{
v := v+1;
}
}
And the output is:
main2.bpl(10,9): Error: This loop invariant might not be maintained by the loop.
Execution trace:
main2.bpl(7,7): anon0
main2.bpl(9,5): anon2_LoopHead
main2.bpl(12,11): anon2_LoopBody
Boogie program verifier finished with 0 verified, 1 error
P.S. I know "This is Boogie 2" is very outdated and the last docs are very incomplete, any other source of information other than trial and error ?