void abort() { }; /*@ requires ((\old(cond) != 0)) && (cond != 0); ensures ((\old(cond) != 0)) && (1); @*/ void __VERIFIER_assert(int cond) { if (!(cond)) { ERROR: {/*@ assert(0); */;abort();} } return; } extern int __VERIFIER_nondet_int(); int main() { int i, n=__VERIFIER_nondet_int(), sn=0; if (!(n < 1000 && n >= -1000)) return 0; /*@ loop invariant ((((sn == 0) && (i == 1)) || ((sn <= ((long long) n * 2)) && (((long long) 2 + sn) == ((long long) i * 2))))); @*/ for(i=1; i<=n; i++) { sn = sn + (2); } __VERIFIER_assert(sn==n*(2) || sn == 0); }