| i < n→i(# vals), newref(r0, st0), newref(r0, st), 0 ≤ i ⊦ r0 = jvmref, vals = [], vals[i→n(i)] = (st ∪ addarray(r0, ty, vals, st0))[r0 -- i '] |
⊦ rk ∈ st0 → (st ∪ st0)[rk] = st0[rk]
⊦ r -- j ' ∈ addarray(r, ty, vals, st) ↔ r -- j ' ∈ st ∨ 0 ≤ j ∧ j < n→i(# vals)
⊦ 0 ≤ i ∧ i < n→i(# vals) → (addarray(r, ty, vals, st)[r -- i ']) = vals[i→n(i)]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ rk ∈ st0 → (st ∪ st0)[rk] = st[rk]], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ i < j → (¬ ¬ j ≤ i ↔ false)])], [EXTRATERMS : (r0 -- i ', addarray(r0, ty, vals, st0), st)]]