| 0 ≤ i, 0 ≤ n→i(# bytes0) + i, ∀ i0, j0, r0, st0, by1. ¬ i0 < 0 ∧ ¬ j0 < 0 ∧ ¬ j0 + n→i(# bytes0) ≤ i0 ∧ ¬ i0 < j0 ∧ ¬ j0 + n→i(# bytes0) ≤ 0 → bytes0 = [] ∨ putByteArray(bytes0, r0, j0, st0[r0 -- i0 ', byteval(by1)]) = putByteArray(bytes0, r0, j0, st0) ⊦ (putByteArray(by ' + bytes0, r, i, st)[r -- i ', byteval(by0)]) = (putByteArray(bytes0, r, i + 1, st)[r -- i ', byteval(by0)]) |
⊦ bytes ≠ [] → putByteArray(bytes, r, i, st) = (putByteArray(bytes .rest, r, i + 1, st)[r -- i ', byteval(bytes .first)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ by ' ≠ []], [CSIMPSEQ : ⊦ ¬ bytes + bytes0 ≠ [] ↔ bytes = [] ∧ bytes0 = []], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ (by ' + bytes) .rest = bytes], [CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1], [CSIMPSEQ : ⊦ (by ' + bytes) .first = by], [CSIMPSEQ : ⊦ (st[rk, val][rk, val0]) = st[rk, val0]], [CSIMPSEQ : ⊦ by ' + bytes ≠ []])], [EXTRATERMS : (st, i, r, by ' + bytes0)]]