| st1[rk, st0[rk]] = st ∪ st0, st0 .keys ∩ st .keys = ∅, st0 ⊆ st1[rk, st0[rk]], rk ∈ st1, st0 -- rk ⊆ st1 -- rk, ∀ st1. st0 ⊆ st1 → (∃ st2. st1 = st2 ∪ st0 ∧ st0 .keys ∩ st2 .keys = ∅) ⊦ rk ∈ st, ∃ st. st1 = (st ∪ st0)[rk, st1[rk]] ∧ st .keys ∩ (st0 .keys ++ rk) = ∅, st1 = st1[rk, st1[rk]] ∧ ¬ rk ∈ st .keys |
⊦ st[rk] = val ∧ rk ∈ st → st[rk, val] = st
st1[rk] = st1[rk] ∧ rk ∈ st1, st1[rk, st0[rk]] = st ∪ st0, st0 .keys ∩ st .keys = ∅, st0 ⊆ st1[rk, st0[rk]], rk ∈ st1, st0 -- rk ⊆ st1 -- rk, ∀ st1. st0 ⊆ st1 → (∃ st2. st1 = st2 ∪ st0 ∧ st0 .keys ∩ st2 .keys = ∅) ⊦ rk ∈ st, ∃ st. st1 = (st ∪ st0)[rk, st1[rk]] ∧ st .keys ∩ (st0 .keys ++ rk) = ∅, st1 = st1 ∧ ¬ rk ∈ st .keys
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (rks ∩ rks0) ∩ rks1 = rks ∩ rks0 ∩ rks1], [CSIMPSEQ : ⊦ rks ∩ rks0 = rks0 ∩ rks])], [EXTRATERMS : (st1[rk], rk, st1)]]