void abort() { }; /*@ requires ((cond != 0)) && (cond != 0); ensures ((cond != 0)) && (1); @*/ void __VERIFIER_assert(int cond) { if(!(cond)) { ERROR: {/*@ assert(0); */;abort();} } } /*@ requires (1); ensures (0); @*/ int main() { int i = 0; /*@ loop invariant ((((i <= 9) && (1 <= i)) || (i == 0))); @*/ while (1) { i++; int j = 0; /*@ loop invariant (((i <= 10) && (1 <= i))); @*/ while (j < 10) { __VERIFIER_assert(0 <= i); __VERIFIER_assert(i <= 10); j++; } if (i > 9) i = 0; } return 0; }