// 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 (1 <= cond); //@ ensures (1 <= cond); { if (!(cond)) { ERROR: {reach_error();abort();} } return; } int main(void) //@ requires module(underapprox_1_2__verifast_instrumented, true); //@ ensures junk(); { //@ open_module(); unsigned int x = 0; unsigned int y = 1; while (x < 6) //@ invariant (((((((((((y * 2) + 1) <= (((89478484 + (y * 178956971)) / 268435456) * 3)) && (y <= 4)) && (x == 2)) || ((((y + 1) <= (3 * (((715827883 * y) + 715827872) / 2147483648))) && (y <= 32)) && (5 == x))) || (((((y / 2) <= 32) && ((y % 2) == 0)) && (x == 6)) && (((y / 2) + 1) <= (3 * ((715827872 + (715827883 * (y / 2))) / 2147483648))))) || (((x == 3) && ((y + 1) <= (3 * (((y * 178956971) + 178956968) / 536870912)))) && (y <= 8))) || ((x == 0) && (y == 1))) || (((y <= 2) && ((y + 1) <= ((((44739243 * y) + 44739242) / 134217728) * 3))) && (x == 1))) || (((y <= 16) && (((y * 2) + 1) <= ((((715827883 * y) + 357913936) / 1073741824) * 3))) && (x == 4))); { x++; y *= 2; } __VERIFIER_assert(y % 3); return 0; }