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