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