void abort() { }; extern int __VERIFIER_nondet_int(); extern _Bool __VERIFIER_nondet_bool(); /*@ requires ((1 <= \old(cond))) && (cond != 0); ensures ((1 <= \old(cond))) && (1); @*/ void __VERIFIER_assert(int cond) { if (!cond) { /*@ assert(0); */; } } int main() { int i = __VERIFIER_nondet_int(); int k = __VERIFIER_nondet_int(); int n = __VERIFIER_nondet_int(); if (!((i==0) && (k==0) && (n>0))) return 0; /*@ loop invariant (((i == k) && (k <= n))); @*/ while (i < n) { i++;k++; } __VERIFIER_assert((i == k) && (k == n)); return 0; }