| ∀ r, r1, class, class1, fis1, st. r = r1 ∨ (instore(r, class, fis0, addobj(r1, class1, fis1, st)) ↔ instore(r, class, fis0, st)) ⊦ r = r1, r -- sk ∈ st ∧ st[r -- sk] = val ∧ instore(r, class, fis0, addobj(r1, class1, fis1, st)) ↔ (r -- (sk × val) .1) × (sk × val) .2 ∈ st ∧ instore(r, class, fis0, st) |
∀ r, r1, class, class1, fis1, st. r = r1 ∨ (instore(r, class, fis0, addobj(r1, class1, fis1, st)) ↔ instore(r, class, fis0, st)) ⊦ r = r1, r -- sk ∈ st ∧ st[r -- sk] = val ∧ instore(r, class, fis0, addobj(r1, class1, fis1, st)) ↔ r -- sk ∈ st ∧ st[r -- sk] = val ∧ instore(r, class, fis0, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ rk × val ∈ st ↔ ¬ ¬ (rk ∈ st ∧ st[rk] = val)], [CSIMPSEQ : ⊦ (sk × val) .2 = val], [CSIMPSEQ : ⊦ (sk × val) .1 = sk])]]