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