| m < n, inv(buf) ⊦ (tolist(buf, n)[m]) = (buf .data)[(i→n(buf .first) + m) % i→n(buf .size)] |
⊦ tolist(buf, 0) = []
∀ m, buf. m < n0 ∧ inv(buf) → (tolist(buf, n0)[m]) = (buf .data)[(i→n(buf .first) + m) % i→n(buf .size)], m < n0 +1, inv(buf) ⊦ (tolist(buf, n0 +1)[m]) = (buf .data)[(i→n(buf .first) + m) % i→n(buf .size)]
[[CONCRETESIMPRULES : ([CSIMPGEN : nat generated by 0, +1;], [CSIMPSEQ : ⊦ ¬ m < 0])]]