void abort() { }; /*@ requires ((cond != 0)) && (cond != 0); ensures ((cond != 0)) && (1); @*/ void __VERIFIER_assert(int cond) { if(!(cond)) { ERROR: {/*@ assert(0); */;abort();} } } extern _Bool __VERIFIER_nondet_bool(); /*@ requires (1); ensures (0); @*/ int main() { int m = 0; int n = 0; /*@ loop invariant (((m <= 60) && (n <= 60))); @*/ while (1) { __VERIFIER_assert(m <= 60); __VERIFIER_assert(n <= 60); if (__VERIFIER_nondet_bool()) { if (__VERIFIER_nondet_bool()) { if (m < 60) { m++; } else { __VERIFIER_assert(m == 60); m = 0; } } } if (__VERIFIER_nondet_bool()) { if (__VERIFIER_nondet_bool()) { if (n < 60) { n++; } else { __VERIFIER_assert(n == 60); n = 0; } } } } return 0; }