| buf1 = buf, buf .len < buf .size, inv(buf), 0 ≤ buf .len, 0 < buf .size, ar0 = buf1 .data ∧ a1 = a ∧ i0 = (buf .first + buf .len) % buf .size, 0 ≤ i0 ∧ i0 < n→i(# ar0), ¬ inv(buf1 .data:= ar0[i→n(i0), a1] .len:= ((buf1 .data:= ar0[i→n(i0), a1]) .len + 1)) ∨ ¬ abs(buf1 .data:= ar0[i→n(i0), a1] .len:= ((buf1 .data:= ar0[i→n(i0), a1]) .len + 1), tolist(buf, i→n(buf .len)) + a ') ⊦ |
0 ≤ (buf .first + buf .len) % buf .size, (buf .first + buf .len) % buf .size < n→i(# buf .data), 0 < buf .size, 0 ≤ buf .len, inv(buf), buf .len < buf .size, ¬ inv(buf .data:= (buf .data)[i→n((buf .first + buf .len) % buf .size), a] .len:= (1 + buf .len)) ∨ ¬ abs(buf .data:= (buf .data)[i→n((buf .first + buf .len) % buf .size), a] .len:= (1 + buf .len), tolist(buf, i→n(buf .len)) + a ') ⊦ # buf .data = 0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ 0 < m ↔ m ≠ 0], [CSIMPSEQ : 0 ≤ i ⊦ ((* i)) < n→i(n) ↔ i→n(i) < n], [CSIMPFORWARD : ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j], [CSIMPFORWARD : ⊦ i < j ∧ 0 ≤ i → 0 < j], [CSIMPSEQ : ⊦ (buf .data:= ar) .len = buf .len])]]