| by ' + bytes0 ≠ [], ∀ r, i, st. getbytearray(r, i, n→i(# bytes0), putByteArray(bytes0, r, i, st)) = bytes0 ⊦ (putByteArray((by ' + bytes0) .rest, r, i + 1, st)[r -- i ', byteval((by ' + bytes0) .first)][r -- i ']) .byteval ' + getbytearray(r, i + 1, n→i(# bytes0), putByteArray((by ' + bytes0) .rest, r, i + 1, st)[r -- i ', byteval((by ' + bytes0) .first)]) = by ' + bytes0 |
∀ r, i, st. getbytearray(r, i, n→i(# bytes0), putByteArray(bytes0, r, i, st)) = bytes0 ⊦ getbytearray(r, i + 1, n→i(# bytes0), putByteArray(bytes0, r, i + 1, st)[r -- i ', byteval(by)]) = bytes0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ by ' + bytes ≠ []], [CSIMPSEQ : ⊦ bytes + bytes0 = bytes + bytes1 ↔ bytes0 = bytes1], [CSIMPSEQ : ⊦ byteval(by) .byteval = by], [CSIMPSEQ : ⊦ (st[rk, val][rk]) = val], [CSIMPSEQ : ⊦ (by ' + bytes) .first = by], [CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1], [CSIMPSEQ : ⊦ (by ' + bytes) .rest = bytes])]]