| is_reftype(ty) ⊦ r0 -- sk ∈ addarray(r, ty, n→i(# vals) + 1, st) ∨ (r0 -- sk) .ref = r ∧ is_indexkey((r0 -- sk) .key) ∧ 1 ≤ (r0 -- sk) .key .index ∧ (r0 -- sk) .key .index < 1 + n→i(# vals) ↔ r0 -- sk ∈ addarray(r, ty, refval(jvmref) ' + vals, st) |
is_reftype(ty) ⊦ r0 -- sk ∈ addarray(r, ty, n→i(# vals) + 1, st) ∨ r0 = r ∧ is_indexkey(sk) ∧ 0 < sk .index ∧ sk .index ≤ n→i(# vals) ↔ r0 -- sk ∈ addarray(r, ty, refval(jvmref) ' + vals, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ i < j + 1 ↔ i ≤ j], [CSIMPSEQ : ⊦ 1 ≤ i ↔ 0 < i], [CSIMPSEQ : ⊦ (r -- sk) .key = sk], [CSIMPSEQ : ⊦ (r -- sk) .ref = r])]]