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