| ∀ r, r0, sk, class, st. r ≠ r0 ∨ ¬ sk ∈ sks0 ∧ sk ≠ _type → (r -- sk ∈ addobj(r0, class, sks0, st) ↔ r -- sk ∈ st), r ≠ r0 ∨ sk ≠ sk0 ∧ ¬ sk ∈ sks0 ∧ sk ≠ _type ⊦ r -- sk ∈ (addobj(r0, class, sks0, st)[r0 -- sk0, initial_value(sk0 .fs .type)]) ↔ r -- sk ∈ st |
sk0 .fs = mkfs(class0, ty, fieldvar), ∀ r, r0, sk, class, st. r ≠ r0 ∨ ¬ sk ∈ sks0 ∧ sk ≠ _type → (r -- sk ∈ addobj(r0, class, sks0, st) ↔ r -- sk ∈ st), r ≠ r0 ∨ sk ≠ sk0 ∧ ¬ sk ∈ sks0 ∧ sk ≠ _type ⊦ r -- sk ∈ (addobj(r0, class, sks0, st)[r0 -- sk0, initial_value(ty)]) ↔ r -- sk ∈ st
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ class = fs .class ∧ ty = fs .type ∧ fieldvar = fs .field ↔ fs = mkfs(class, ty, fieldvar)])], [EXTRATERMS : (sk0 .fs, class0, ty, fieldvar)]]