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