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