| r0 -- sk ∈ addarray(r0, ty, n→i(# vals) + 1, st) ∨ ¬ sk .index ≤ 0 ∧ ¬ n→i(# vals) < sk .index ↔ r0 -- sk ∈ addarray(r0, ty, refval(jvmref) ' + vals, st), is_reftype(ty), is_indexkey(sk) ⊦ (putArray(vals, r0, 1, addarray(r0, ty, n→i(# vals) + 1, st))[r0 -- sk]) = (addarray(r0, ty, refval(jvmref) ' + vals, st)[r0 -- sk]) |
sk = i ', r0 -- sk ∈ addarray(r0, ty, n→i(# vals) + 1, st) ∨ ¬ i ≤ 0 ∧ ¬ n→i(# vals) < i ↔ r0 -- sk ∈ addarray(r0, ty, refval(jvmref) ' + vals, st), is_reftype(ty), is_indexkey(sk) ⊦ (putArray(vals, r0, 1, addarray(r0, ty, n→i(# vals) + 1, st))[r0 -- sk]) = (addarray(r0, ty, refval(jvmref) ' + vals, st)[r0 -- sk])
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_indexkey(sk) → (i = sk .index ↔ sk = i ')])], [EXTRATERMS : (sk, i)]]