// verifast_options{disable_overflow_check target:ILP32} extern void abort(void); //@ requires true; //@ ensures true; void reach_error() //@ requires false; //@ ensures true; {}void __VERIFIER_assert(int cond) //@ requires (cond != 0); //@ ensures (cond != 0); { if(!(cond)) { ERROR: {reach_error();abort();} } }extern bool __VERIFIER_nondet_bool(); int main() //@ requires module(bh2017_ex3__verifast_instrumented, true) &*& true; //@ ensures false &*& junk(); { //@ open_module(); int m = 0; int n = 0; while (1) //@ invariant ((m <= 60) && (n <= 60)); { __VERIFIER_assert(m <= 60); __VERIFIER_assert(n <= 60); if (__VERIFIER_nondet_bool()) //@ requires true; //@ ensures true; { if (__VERIFIER_nondet_bool()) { if (m < 60) { m++; } else { __VERIFIER_assert(m == 60); m = 0; } } } else { if (__VERIFIER_nondet_bool()) { if (n < 60) { n++; } else { __VERIFIER_assert(n == 60); n = 0; } } } } return 0; }