| rk ∈ st, st ⊆ st0 ⊦ r ∈ st, (rk ∈ st0 ∨ rk .ref = r ∧ ¬ is_fskey(rk .key) ∧ ¬ rk .key .index < i ∧ ¬ i + n→i(# vals) ≤ rk .key .index) ∧ st[rk] = (putArray(vals, r, i, st0)[rk]) |
rk = r0 -- sk, rk ∈ st, st ⊆ st0 ⊦ r ∈ st, (rk ∈ st0 ∨ r0 = r ∧ ¬ is_fskey(sk) ∧ ¬ sk .index < i ∧ ¬ i + n→i(# vals) ≤ sk .index) ∧ st[rk] = (putArray(vals, r, i, st0)[rk])
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ r = rk .ref ∧ sk = rk .key ↔ rk = r -- sk])], [EXTRATERMS : (rk, r0, sk)]]