| st ⊆ st0 ⊦ ∀ rk. rk ∈ st → rk ∈ putArray(vals, r, i, st0) ∧ st[rk] = (putArray(vals, r, i, st0)[rk]), r ∈ st |
⊦ 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)
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])
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ i < j ↔ j ≤ i], [CSIMPSEQ : ⊦ ¬ i ≤ j ↔ j < i], [CSIMPSEQ : ⊦ ¬ is_indexkey(sk) ↔ is_fskey(sk)])]]