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