| eqex(st1, st0[r -- sk, val], r0), eqex(st0[r -- sk, val], st1, r0), eqex(st, st0, r0), eqex(st0, st, r0), ∀ 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] ⊦ (st[r -- sk, val] -- r0)[r1 -- sk0] = (st1 -- r0)[r1 -- sk0] ∧ (r1 ≠ r0 ∧ r1 -- sk0 ∈ st[r -- sk, val] ↔ r1 -- sk0 ∈ st1 -- r0) |
⊦ r ≠ r0 → (st -- r)[r0 -- sk0] = st[r0 -- sk0]
¬ r0 ≠ r1, eqex(st1, st0[r -- sk, val], r0), eqex(st0[r -- sk, val], st1, r0), eqex(st, st0, r0), eqex(st0, st, r0), ∀ 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] ⊦ (st[r -- sk, val] -- r0)[r1 -- sk0] = (st1 -- r0)[r1 -- sk0] ∧ (r1 ≠ r0 ∧ r1 -- sk0 ∈ st[r -- sk, val] ↔ r1 -- sk0 ∈ st1 -- r0)
r0 ≠ r1, eqex(st1, st0[r -- sk, val], r0), eqex(st0[r -- sk, val], st1, r0), eqex(st, st0, r0), eqex(st0, st, r0), ∀ 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] ⊦ (st[r -- sk, val][r1 -- sk0]) = (st1 -- r0)[r1 -- sk0] ∧ (r1 ≠ r0 ∧ r1 -- sk0 ∈ st[r -- sk, val] ↔ r1 -- sk0 ∈ st1 -- r0)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sk0, r1, r0, st[r -- sk, val])]]