| st ⊆ st1, newref(r, st) ⊦ r = jvmref, ∀ rk. rk ∈ st → rk ∈ putArray(vals0, r, i, putArray(vals1, r, j, addarray(r, ty, i1, st1))) ∧ st[rk] = (putArray(vals0, r, i, putArray(vals1, r, j, addarray(r, ty, i1, st1)))[rk]) |
rk ∈ st, st ⊆ st1, newref(r, st) ⊦ r = jvmref, ( rk ∈ addarray(r, ty, i1, st1) ∨ rk .ref = r ∧ ¬ is_fskey(rk .key) ∧ ¬ rk .key .index < j ∧ ¬ j + n→i(# vals1) ≤ rk .key .index ∨ rk .ref = r ∧ ¬ is_fskey(rk .key) ∧ ¬ rk .key .index < i ∧ ¬ i + n→i(# vals0) ≤ rk .key .index) ∧ st[rk] = (putArray(vals0, r, i, putArray(vals1, r, j, addarray(r, ty, i1, st1)))[rk])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ ¬ is_indexkey(sk) ↔ is_fskey(sk)], [CSIMPSEQ : ⊦ rk ∈ putArray(vals, r, i, st) ↔ rk ∈ st ∨ rk .ref = r ∧ is_indexkey(rk .key) ∧ i ≤ rk .key .index ∧ rk .key .index < i + n→i(# vals)])]]