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