| okbytearray(r0, st), validrefnotnull(str, r, ty, st), ∀ r0, st, str, r, ty, i. okbytearray(r0, st) ∧ validrefnotnull(str, r, ty, st) → r = r0 ∨ r = jvmref ∨ validrefnotnull(str, r, ty, putByteArray(bytes0, r0, i, st)) ⊦ r = r0, r = jvmref, validrefnotnull(str, r, ty, putByteArray(by ' + bytes0, r0, i, st)) |
⊦ bytes ≠ [] → putByteArray(bytes, r, i, st) = (putByteArray(bytes .rest, r, i + 1, st)[r -- i ', byteval(bytes .first)])
by ' + bytes0 ≠ [], okbytearray(r0, st), validrefnotnull(str, r, ty, st), ∀ r0, st, str, r, ty, i. okbytearray(r0, st) ∧ validrefnotnull(str, r, ty, st) → r = r0 ∨ r = jvmref ∨ validrefnotnull(str, r, ty, putByteArray(bytes0, r0, i, st)) ⊦ r = r0, r = jvmref, validrefnotnull(str, r, ty, putByteArray((by ' + bytes0) .rest, r0, i + 1, st)[r0 -- i ', byteval((by ' + bytes0) .first)])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ bytes + bytes0 ≠ [] ↔ bytes = [] ∧ bytes0 = []], [CSIMPSEQ : ⊦ by ' ≠ []], [CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1])], [EXTRATERMS : (st, i, r0, by ' + bytes0)]]