void abort() { }; extern int __VERIFIER_nondet_int(); extern _Bool __VERIFIER_nondet_bool(); /*@ requires ((cond != 0)) && (cond != 0); ensures ((cond != 0)) && (1); @*/ void __VERIFIER_assert(int cond) { if (!cond) { /*@ assert(0); */; } } int main() { int x = __VERIFIER_nondet_int(); if (!((x>=0) && (x<=50))) return 0; /*@ loop invariant (((0 <= x) && (x <= 50))); @*/ while (__VERIFIER_nondet_bool()) { if (x>50) x++; if (x == 0) { x ++; } else x--; } __VERIFIER_assert((x>=0) && (x<=50)); return 0; }