| ∀ by, r, i, st. putByteArray(bytes0 + by ', r, i, st) = (putByteArray(bytes0, r, i, st)[r -- (i + n→i(# bytes0)) ', byteval(by)]) ⊦ putByteArray((by0 ' + bytes0) + by ', r, i, st) = (putByteArray(by0 ' + bytes0, r, i, st)[r -- ((1 + n→i(# bytes0)) + i) ', byteval(by)]) |
⊦ bytes ≠ [] → putByteArray(bytes, r, i, st) = (putByteArray(bytes .rest, r, i + 1, st)[r -- i ', byteval(bytes .first)])
(by0 ' + bytes0) + by ' ≠ [], ∀ by, r, i, st. putByteArray(bytes0 + by ', r, i, st) = (putByteArray(bytes0, r, i, st)[r -- (i + n→i(# bytes0)) ', byteval(by)]) ⊦ (putByteArray(((by0 ' + bytes0) + by ') .rest, r, i + 1, st)[r -- i ', byteval(((by0 ' + bytes0) + by ') .first)]) = (putByteArray(by0 ' + bytes0, r, i, st)[r -- ((1 + n→i(# bytes0)) + i) ', byteval(by)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ bytes + bytes0 ≠ [] ↔ bytes = [] ∧ bytes0 = []], [CSIMPSEQ : ⊦ by ' ≠ []], [CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1])], [EXTRATERMS : (st, i, r, (by0 ' + bytes0) + by ')]]