| by ' + bytes0 ≠ [], # vals1 = 1 + # bytes0, ∀ vals, vals2, r0, st0. # vals2 = # bytes0 → putByteArray(bytes0, r0, n→i(# vals), addarray(r0, byte_type, vals + vals2, st0)) = addarray(r0, byte_type, vals + mkjavavalues(bytes0), st0) ⊦ (putByteArray((by ' + bytes0) .rest, r, n→i(# vals0) + 1, addarray(r, byte_type, vals0 + vals1, st)) [r -- n→i(# vals0) ', byteval((by ' + bytes0) .first) ] ) = addarray(r, byte_type, vals0 + byteval(by) ' + mkjavavalues(bytes0), st) |
# vals1 = 1 + # bytes0, ∀ vals, vals2, r0, st0. # vals2 = # bytes0 → putByteArray(bytes0, r0, n→i(# vals), addarray(r0, byte_type, vals + vals2, st0)) = addarray(r0, byte_type, vals + mkjavavalues(bytes0), st0) ⊦ (putByteArray(bytes0, r, n→i(# vals0) + 1, addarray(r, byte_type, vals0 + vals1, st))[r -- n→i(# vals0) ', byteval(by)]) = addarray(r, byte_type, vals0 + byteval(by) ' + mkjavavalues(bytes0), st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ by ' + bytes ≠ []], [CSIMPSEQ : ⊦ (by ' + bytes) .first = by], [CSIMPSEQ : ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1], [CSIMPSEQ : ⊦ (by ' + bytes) .rest = bytes])]]