| by ' + bytes1 ≠ [], 0 ≤ j, 0 ≤ j0, j ≤ j0, n→i(# bytes1) + j0 < j + n→i(# bytes), ∀ j1, j2, bytes0, r, st0. ¬ j2 < j1 ∧ ¬ j1 + n→i(# bytes0) < j2 + n→i(# bytes1) ∧ ¬ j1 < 0 ∧ ¬ j2 < 0 → putByteArray(bytes0, r, j1, putByteArray(bytes1, r, j2, st0)) = putByteArray(bytes0, r, j1, st0) ⊦ putByteArray(bytes, r1, j, putByteArray((by ' + bytes1) .rest, r1, j0 + 1, st)[r1 -- j0 ', byteval((by ' + bytes1) .first)]) = putByteArray(bytes, r1, j, st) |
0 ≤ j, 0 ≤ j0, j ≤ j0, n→i(# bytes1) + j0 < j + n→i(# bytes), ∀ j1, j2, bytes0, r, st0. ¬ j2 < j1 ∧ ¬ j1 + n→i(# bytes0) < j2 + n→i(# bytes1) ∧ ¬ j1 < 0 ∧ ¬ j2 < 0 → putByteArray(bytes0, r, j1, putByteArray(bytes1, r, j2, st0)) = putByteArray(bytes0, r, j1, st0) ⊦ putByteArray(bytes, r1, j, putByteArray(bytes1, r1, j0 + 1, st)[r1 -- j0 ', byteval(by)]) = putByteArray(bytes, r1, j, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ by ' + bytes ≠ []], [CSIMPSEQ : ⊦ (by ' + bytes) .first = by], [CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1], [CSIMPSEQ : ⊦ (by ' + bytes) .rest = bytes])]]