Open A-Mehdi opened 1 year ago
Sorry that I missed this question.
CBMC unwinds a loop or a recursive function following a user's command (i.e., --unwind N), regardless of that many unwindings is necessary or not.
Note that unwinding a loop/a recursive function too many times does NOT change the behavior of target code because of a loop condition/a termination condition of a recursive function (see the page 17 of Oct 11's lecture slides).
For the following code, if I run
cbmc --unwind 100 test.c
, cbmc will unwind the recursion 100 times. But from the code, it can be seen that recursion will only happen for 8 times (because of __CPROVER_assume). So what does it mean, when cbmc outputsUnwinding recursion recursive iteration 100
?