| rk ∈ st .keys, 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 = ∅) ⊦ ∀ rk0. (rk0 ∈ st1 ↔ rk0 ∈ ((st -- rk) ∪ st0)[rk, st1[rk]]) ∧ st1[rk0] = (((st -- rk) ∪ st0)[rk, st1[rk]][rk0]), ∃ st. st1 = (st ∪ st0)[rk, st1[rk]] ∧ st .keys ∩ (st0 .keys ++ rk) = ∅ |
⊦ rk ∈ st ∪ st0 ↔ rk ∈ st ∨ rk ∈ st0
st0 .keys ∩ st .keys = ∅, st1[rk, st0[rk]] = st ∪ st0, st0 -- rk ⊆ st1 -- rk, rk ∈ st1, st0 ⊆ st1[rk, st0[rk]], rk ∈ st .keys, ∀ st1. st0 ⊆ st1 → (∃ st2. st1 = st2 ∪ st0 ∧ st0 .keys ∩ st2 .keys = ∅) ⊦ (rk0 ∈ st1 ↔ rk0 = rk ∨ rk0 ∈ st0 ∨ rk0 ∈ st) ∧ st1[rk0] = ((rk0 = rk ⊃ st1[rk]; ((st -- rk) ∪ st0)[rk0])), ∃ st. st1 = (st ∪ st0)[rk, st1[rk]] ∧ st .keys ∩ (st0 .keys ++ rk) = ∅
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ rk ∈ st .keys → st .keys ≠ ∅], [CSIMPFORWARD : ⊦ rk ∈ rks → rks ≠ ∅], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ rk ∈ st -- rk0 ↔ rk ≠ rk0 ∧ rk ∈ st], [CSIMPSEQ : ⊦ rk ∈ st[rk0, val] ↔ rk = rk0 ∨ rk ∈ st], [CSIMPSEQ : ⊦ rks ∩ rks0 = rks0 ∩ rks], [CSIMPSEQ : ⊦ (rks ∩ rks0) ∩ rks1 = rks ∩ rks0 ∩ rks1])]]