| 0 < j, i→n(j) = m + 1, 0 < j, j ≤ 1 + n→i(# bytes0), ∀ j0, r0, i0, st0. ¬ j0 < 0 ∧ ¬ n→i(# bytes0) < j0 → getbytearray(r0, i0, j0, putByteArray(bytes0, r0, i0, st0)) = firstn(i→n(j0), bytes0) ⊦ j = 0, (putByteArray(bytes0, r, i + 1, st)[r -- i ', byteval(by)][r -- i ']) .byteval + getbytearray(r, i + 1, j - 1, putByteArray(bytes0, r, i + 1, st)[r -- i ', byteval(by)]) = by ' + firstn(m, bytes0) |
i→n(j) = m + 1, 0 < j, j ≤ 1 + n→i(# bytes0), ∀ j0, r0, i0, st0. ¬ j0 < 0 ∧ ¬ n→i(# bytes0) < j0 → getbytearray(r0, i0, j0, putByteArray(bytes0, r0, i0, st0)) = firstn(i→n(j0), bytes0) ⊦ j = 0, getbytearray(r, i + 1, j - 1, putByteArray(bytes0, r, i + 1, st)[r -- i ', byteval(by)]) = firstn(m, bytes0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1], [CSIMPSEQ : ⊦ bytes + bytes0 = bytes + bytes1 ↔ bytes0 = bytes1], [CSIMPSEQ : ⊦ by + bytes = by ' + bytes], [CSIMPSEQ : ⊦ byteval(by) .byteval = by], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))])]]