| a ' + x = tolist(buf, i→n(buf .len)), buf .len = 1 + n→i(# x), 0 ≤ buf .first, buf .first < n→i(# buf .data), inv(buf) ⊦ a = (buf .data)[i→n(buf .first)], # buf .data = 0 |
⊦ inv(buf) ∧ m < n → (x = tolist(buf, n) ↔ x = tolist(buf, n) ∧ x[m] = (buf .data)[(i→n(buf .first) + m) % i→n(buf .size)])
⊦ inv(buf) → i→n(buf .first) % i→n(buf .size) = i→n(buf .first)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ 0 + m = m], [CSIMPSEQ : ⊦ (a ' + x0)[0] = a], [CSIMPSEQ : ⊦ 0 < m ↔ m ≠ 0], [CSIMPSEQ : ⊦ i→n(i) = 0 ↔ i = 0], [CSIMPFORWARD : ⊦ i + 1 = 0 → i < 0], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPFORWARD : ⊦ a ' + x0 = x1 → a ∈ x1], [CSIMPSEQ : ⊦ (x0 + x1) + x2 = x0 + x1 + x2], [CSIMPSEQ : ⊦ 0 ≠ n→i(m) + 1])], [EXTRATERMS : (0, i→n(buf .len), buf, a ' + x)]]