| inv(buf .data:= (buf .data)[i→n((buf .first + buf .len) % buf .size), a] .len:= (1 + buf .len)), 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 |
inv(buf .data:= (buf .data)[i→n((buf .first + buf .len) % buf .size), a] .len:= (1 + buf .len)), 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 ⊦ # buf .data = 0, 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 ')
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j = j + i])]]