| okfieldinits(class1, 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) ⊦ ((mkfs(class1, ty0, fieldvar0) ' × initial_value(ty0)) ' + fis0)[mkfs(class, ty, fieldvar) '] = initial_value(ty), ty0 = abstract_type |
⊦ sk ≠ sk0 → ((sk0 × val) ' + fis)[sk] = fis[sk]
mkfs(class, ty, fieldvar) ' ≠ mkfs(class1, ty0, fieldvar0) ', okfieldinits(class1, 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) ⊦ fis0[mkfs(class, ty, fieldvar) '] = initial_value(ty), ty0 = abstract_type
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ fs ' = fs0 ' ↔ fs = fs0], [CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) = mkfs(class0, ty0, fieldvar0) ↔ class = class0 ∧ ty = ty0 ∧ fieldvar = fieldvar0], [CSIMPSEQ : ⊦ ((sk × val) ' + fis)[sk] = val], [CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1])], [EXTRATERMS : (mkfs(class, ty, fieldvar) ', fis0, initial_value(ty0), mkfs(class1, ty0, fieldvar0) ')]]