| # 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) |
⊦ j < i ∨ i + n→i(# bytes) ≤ j → (putByteArray(bytes, r, i, st)[r -- j ', val]) = putByteArray(bytes, r, i, st[r -- j ', val])
n→i(# vals0) < n→i(# vals0) + 1 ∨ (n→i(# vals0) + 1) + n→i(# bytes0) ≤ n→i(# vals0), # 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 : ⊦ i < j + 1 ↔ i ≤ j], [CSIMPSEQ : ⊦ n→i(m) ≤ n→i(n) ↔ m ≤ n], [CSIMPSEQ : ⊦ ¬ m ≤ n ↔ n < m], [CSIMPSEQ : ⊦ ¬ n < n], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i + j = j + i])], [EXTRATERMS : (byteval(by), n→i(# vals0), addarray(r, byte_type, vals0 + vals1, st), n→i(# vals0) + 1, r, bytes0)]]