| is_fskey(sk) ∧ val = initial_value(sk .fs .type) ∧ sk .fs .class = class0 ∧ sk .fs .type ≠ abstract_type ∧ okfieldinits(class0, fis0), ∀ class0, class, ty, fieldvar. okfieldinits(class0, fis0) ∧ mkfs(class, ty, fieldvar) ' ∈ fis0 .keys → class = class0 ⊦ class = class0, mkfs(class, ty, fieldvar) ' ≠ sk ∧ ¬ mkfs(class, ty, fieldvar) ' ∈ fis0 .keys |
is_fskey(sk), okfieldinits(sk .fs .class, fis0), mkfs(class, ty, fieldvar) ' ∈ fis0 .keys, ∀ class0, class, ty, fieldvar. okfieldinits(class0, fis0) ∧ mkfs(class, ty, fieldvar) ' ∈ fis0 .keys → class = class0 ⊦ class = sk .fs .class, sk .fs .type = abstract_type, mkfs(class, ty, fieldvar) ' = sk
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) .class = class], [CSIMPSEQ : ⊦ mkfs(class, ty, fieldvar) .type = ty], [CSIMPSEQ : ⊦ fs ' .fs = fs])]]