// verifast_options{disable_overflow_check target:ILP32} extern void abort(void); //@ requires true; //@ ensures true; void reach_error() //@ requires false; //@ ensures true; {}void assume_abort_if_not(int cond) //@ requires true; //@ ensures true; { if(!cond) {abort();} } void __VERIFIER_assert(int cond) //@ requires (cond != 0); //@ ensures (cond != 0); { if (!(cond)) { ERROR: {reach_error();abort();} } return; } int __VERIFIER_nondet_int(); //@ requires true; //@ ensures true; int main() //@ requires module(css2003__verifast_instrumented, true); //@ ensures junk(); { //@ open_module(); int i,j,k; i = 1; j = 1; k = __VERIFIER_nondet_int(); if (!(0 <= k && k <= 1)) return 0; while (i < 1000000) //@ invariant ((((2 <= i) && ((i + k) <= 2)) && (1 <= (i + k))) || (((0 <= k) && (k <= 1)) && (i == 1))); { i = i + 1; j = j + k; k = k - 1; __VERIFIER_assert(1 <= i + k && i + k <= 2 && i >= 1); } return 0; }