void abort() { }; extern int __VERIFIER_nondet_int(); extern _Bool __VERIFIER_nondet_bool(); /*@ requires ((1 <= \old(cond))) && (cond != 0); ensures ((1 <= \old(cond))) && (1); @*/ void __VERIFIER_assert(int cond) { if (!cond) { /*@ assert(0); */; } } int main() { int x = __VERIFIER_nondet_int(); int y = __VERIFIER_nondet_int(); if (!(x < 100 && y < 100)) return 0; /*@ loop invariant (((y <= 100) && (x <= 100))); @*/ while (x < 100 && y < 100) { x=x+1; y=y+1; } __VERIFIER_assert(x == 100 || y == 100); return 0; }