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