| r1 -- sk0 ∈ st ↔ r1 -- sk0 ∈ st0, st[r1 -- sk0] = st0[r1 -- sk0], eqex(st1, st0[r -- sk, val], r0), eqex(st0[r -- sk, val], st1, r0), eqex(st, st0, r0), eqex(st0, st, r0), r1 ≠ r ∨ sk0 ≠ sk, ∀ rk. (rk ∈ st -- r0 ↔ rk ∈ st0 -- r0) ∧ (st -- r0)[rk] = (st0 -- r0)[rk], ∀ rk0. (rk0 ∈ st0[r -- sk, val] -- r0 ↔ rk0 ∈ st1 -- r0) ∧ (st0[r -- sk, val] -- r0)[rk0] = (st1 -- r0)[rk0] ⊦ st0[r1 -- sk0] = st1[r1 -- sk0], r0 = r1 |
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ rk ∈ st → st[rk] = ∅[rk]], [CSIMPSEQ : ⊦ r -- sk ∈ st -- r0 ↔ r ≠ r0 ∧ r -- sk ∈ st], [CSIMPSEQ : ⊦ rk ∈ st[rk0, val] ↔ rk = rk0 ∨ rk ∈ st], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ ¬ ¬ (r = r0 ∧ sk = sk0)], [CSIMPSEQ : ⊦ r ≠ r0 → (st -- r)[r0 -- sk0] = st[r0 -- sk0]], [CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ r -- sk = r0 -- sk0 ↔ r = r0 ∧ sk = sk0])], [EXTRATERMS : (r1 -- sk0)]]