| 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 = ∅) ⊦ st1 = ((st -- rk) ∪ st0)[rk, st1[rk]] ∧ (st -- rk) .keys ∩ (st0 .keys ++ rk) = ∅, ∃ st. st1 = (st ∪ st0)[rk, st1[rk]] ∧ st .keys ∩ (st0 .keys ++ rk) = ∅ |
⊦ rk ∈ st .keys → (st -- rk) .keys = st .keys -- rk
¬ 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 = ∅) ⊦ st1 = ((st -- rk) ∪ st0)[rk, st1[rk]] ∧ (st -- rk) .keys ∩ (st0 .keys ++ rk) = ∅, ∃ st. st1 = (st ∪ st0)[rk, st1[rk]] ∧ st .keys ∩ (st0 .keys ++ rk) = ∅
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 = ∅) ⊦ st1 = ((st -- rk) ∪ st0)[rk, st1[rk]] ∧ (st .keys -- rk) ∩ (st0 .keys ++ rk) = ∅, ∃ st. st1 = (st ∪ st0)[rk, st1[rk]] ∧ st .keys ∩ (st0 .keys ++ rk) = ∅
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (rk, st)]]