| # 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) |
⊦ 0 ≤ i ∧ i→n(i) < # vals → (addarray(r, ty, vals, st)[r -- i ', val]) = addarray(r, ty, vals[i→n(i), val], st)
0 ≤ n→i(# vals0) ∧ i→n(n→i(# vals0)) < # (vals0 + vals1), # 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)[i→n(n→i(# vals0)), byteval(by)], st)) = addarray(r, byte_type, vals0 + byteval(by) ' + mkjavavalues(bytes0), st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ 0 ≤ n→i(n)], [CSIMPSEQ : ⊦ i→n(n→i(n)) = n], [CSIMPSEQ : ⊦ # (vals + vals0) = # vals + # vals0], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ ¬ m < n ↔ n ≤ m], [CSIMPSEQ : ⊦ m + m0 ≤ m ↔ m0 = 0], [CSIMPSEQ : ⊦ # vals = 0 ↔ vals = []], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ # [] = 0], [CSIMPSEQ : ⊦ m + 1 ≠ 0])], [EXTRATERMS : (byteval(by), n→i(# vals0), st, vals0 + vals1, byte_type, r)]]