void abort() { }; extern int __VERIFIER_nondet_int(); extern _Bool __VERIFIER_nondet_bool(); /*@ requires ((\old(cond) != 0)) && (cond != 0); ensures ((\old(cond) != 0)) && (1); @*/ void __VERIFIER_assert(int cond) { if (!cond) { /*@ assert(0); */; } } int main() { int x = __VERIFIER_nondet_int(); if (!(x==1 || x==2)) return 0; /*@ loop invariant ((x < 3)); @*/ while (__VERIFIER_nondet_bool()) { if(x==1) x=2; else if (x==2) x=1; } __VERIFIER_assert(x<=8); return 0; }