int SIZE = 50000001; int __VERIFIER_nondet_int(); void abort() { }; void assume_abort_if_not(int cond) { if(!cond) {abort();} } /*@ requires ((1 <= cond)) && (cond != 0); ensures (((1 <= cond) && (SIZE == \old(SIZE)))) && (1); @*/ void __VERIFIER_assert(int cond) { if (!(cond)) { ERROR: {/*@ assert(0); */;abort();} } return; } int __VERIFIER_nondet_int(); /*@ requires (1); ensures ((SIZE == \old(SIZE))); @*/ int main() { int n,i,j,k; n = __VERIFIER_nondet_int(); if (!(n <= SIZE)) return 0; i = 0; j=0; /*@ loop invariant ((0 == ((i >= 0) ? (i % 2) : ((i % 2) + 2)))); @*/ while(i= 0) ? (k % 2) : ((k % 2) + 2)) == 0)); @*/ while( (j%2) == 0){ j-=4; k -=4; } __VERIFIER_assert( (k%2) == 0 ); return 0; }