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