| is_fskey(sk), okfieldinits(sk .fs .class, fis0), mkfs(sk .fs .class, abstract_type, fieldvar) ' ∈ (sk × initial_value(sk .fs .type)) ' + fis0, ∀ class0, fieldvar0. ¬ okfieldinits(class0, fis0) ∨ ¬ mkfs(class0, abstract_type, fieldvar0) ' ∈ fis0 ⊦ sk .fs .type = abstract_type |
sk = fs ', is_fskey(sk), okfieldinits(fs .class, fis0), mkfs(fs .class, abstract_type, fieldvar) ' ∈ (sk × initial_value(fs .type)) ' + fis0, ∀ class0, fieldvar0. ¬ okfieldinits(class0, fis0) ∨ ¬ mkfs(class0, abstract_type, fieldvar0) ' ∈ fis0 ⊦ fs .type = abstract_type
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_fskey(sk) → (fs = sk .fs ↔ sk = fs ')])], [EXTRATERMS : (sk, fs)]]