extern int __VERIFIER_nondet_int(); void abort() { }; /*@ requires (1); ensures ((\result < 4)); @*/ int id(int x) { if (x==0) return 0; int ret = id((unsigned int)x-1) + 1; if (ret > 3) return 3; return ret; } int main() { int input = __VERIFIER_nondet_int(); int result = id(input); if (result == 5) { ERROR: {/*@ assert(0); */;abort();} } }