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