| ∀ r, sk, r0, st. r -- sk ∈ update(r0, fis0, st) ↔ r -- sk ∈ st ∨ r = r0 ∧ sk ∈ fis0 ⊦ r -- sk ∈ (update(r0, fis0, st)[r0 -- sk0, val]) ↔ r -- sk ∈ st ∨ r = r0 ∧ (sk = sk0 ∨ sk ∈ fis0) |
⊦ rk ∈ st[rk0, val] ↔ rk = rk0 ∨ rk ∈ st
∀ r, sk, r0, st. r -- sk ∈ update(r0, fis0, st) ↔ r -- sk ∈ st ∨ r = r0 ∧ sk ∈ fis0 ⊦ r -- sk = r0 -- sk0 ∨ r -- sk ∈ update(r0, fis0, st) ↔ r -- sk ∈ st ∨ r = r0 ∧ (sk = sk0 ∨ sk ∈ fis0)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (val, r0 -- sk0, update(r0, fis0, st), r -- sk)]]