void abort() { }; extern unsigned int __VERIFIER_nondet_uint(); /*@ requires ((cond != 0)) && (cond != 0); ensures ((cond != 0)) && (1); @*/ void __VERIFIER_assert(int cond) { if (!cond) { ERROR: { /*@ assert(0); */; abort(); } } else { } return; } void func_to_recursive_line_16_to_18_0(unsigned int *y, unsigned int *z) { if (__VERIFIER_nondet_uint()) { { (*y)++; (*z)++; } func_to_recursive_line_16_to_18_0(y, z); } else { } } int main() { unsigned int w = __VERIFIER_nondet_uint(); unsigned int x = w; unsigned int y = w + 1; unsigned int z = x + 1; func_to_recursive_line_16_to_18_0(&y, &z); __VERIFIER_assert(y == z); return 0; }