| j ≤ 1 + n→i(# bytes0), 0 ≤ j, ∀ j0, r0, i0, st0. ¬ j0 < 0 ∧ ¬ n→i(# bytes0) < j0 → getbytearray(r0, i0, j0, putByteArray(bytes0, r0, i0, st0)) = firstn(i→n(j0), bytes0) ⊦ getbytearray(r, i, j, putByteArray(bytes0, r, i + 1, st)[r -- i ', byteval(by)]) = firstn(i→n(j), by ' + bytes0) |
⊦ n ≠ 0 → firstn(n, by ' + bytes) = by ' + firstn(n -1, bytes)
⊦ getbytearray(r, i, 0, st) = []
i→n(j) ≠ 0, j ≤ 1 + n→i(# bytes0), 0 ≤ j, ∀ j0, r0, i0, st0. ¬ j0 < 0 ∧ ¬ n→i(# bytes0) < j0 → getbytearray(r0, i0, j0, putByteArray(bytes0, r0, i0, st0)) = firstn(i→n(j0), bytes0) ⊦ getbytearray(r, i, j, putByteArray(bytes0, r, i + 1, st)[r -- i ', byteval(by)]) = by ' + firstn(i→n(j) -1, bytes0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i→n(i) = 0 ↔ i = 0], [CSIMPSEQ : ⊦ firstn(0, bytes) = []])], [EXTRATERMS : (bytes0, by, i→n(j))]]