| 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) |
⊦ 0 ≤ j ∧ bytes ≠ [] ∧ j ≤ i ∧ i < j + n→i(# bytes) → putByteArray(bytes, r, j, st[r -- i ', byteval(by)]) = putByteArray(bytes, r, j, st)
⊦ putByteArray([], r, i, st) = st
0 ≤ j ∧ bytes ≠ [] ∧ j ≤ j0 ∧ j0 < j + n→i(# bytes), 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)) = putByteArray(bytes, r1, j, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ # [] = 0], [CSIMPSEQ : ⊦ i + 0 = i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPFORWARD : ⊦ i < j ∧ j ≤ j0 → i < j0], [CSIMPSEQ : ⊦ i + j < j ↔ i < 0], [CSIMPSEQ : ⊦ ¬ n→i(n) < 0])], [EXTRATERMS : (by, j0, putByteArray(bytes1, r1, j0 + 1, st), j, r1, bytes)]]