| st[rk] = (st0 -- r)[rk], rk ∈ st, rk ∈ st0 -- r, ∀ rk. rk ∈ st → rk ∈ st0 -- r ∧ st[rk] = (st0 -- r)[rk] ⊦ r ∈ st, rk ∈ st0 ∧ st[rk] = st0[rk] |
⊦ r ≠ rk .ref → (st -- r)[rk] = st[rk]
¬ r ≠ rk .ref, st[rk] = (st0 -- r)[rk], rk ∈ st, rk ∈ st0 -- r, ∀ rk. rk ∈ st → rk ∈ st0 -- r ∧ st[rk] = (st0 -- r)[rk] ⊦ r ∈ st, rk ∈ st0 ∧ st[rk] = st0[rk]
r ≠ rk .ref, st[rk] = st0[rk], rk ∈ st, rk ∈ st0 -- r, ∀ rk. rk ∈ st → rk ∈ st0 -- r ∧ st[rk] = (st0 -- r)[rk] ⊦ r ∈ st, rk ∈ st0 ∧ st[rk] = st0[rk]
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (rk, r, st0)]]