void abort() { }; /*@ requires ((\old(cond) != 0)) && (cond != 0); ensures ((\old(cond) != 0)) && (1); @*/ void __VERIFIER_assert(int cond) { if(!(cond)) { ERROR: {/*@ assert(0); */;abort();} } } int main() { int i = 0; /*@ loop invariant ((i < 101)); @*/ while (i < 100) { int j = 0; /*@ loop invariant (((i <= 99) && (j <= 100))); @*/ while (j < 100) { j++; __VERIFIER_assert(j <= 100); } __VERIFIER_assert(j == 100); i++; __VERIFIER_assert(i <= 100); } __VERIFIER_assert(i == 100); return 0; }