I'd like to understand why this function is not accepted as a terminating one:
val while_items: ni: nat -> ni_max: nat -> nw: nat -> bool
let rec while_items ni ni_max nw =
(if ni < ni_max
then while_items (ni + nw) ni_max nw
else true)
FStar rejects it and sends the following message:
(Error) Could not prove termination of this recursive call: The solver found a (partial) counterexample...
It's likely not the same binding issue here as the one in my related question under FStar function strange behavior
Can FStar show the counter example?