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