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