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