| sk .fs = mkfs(class, ty, fieldvar), goodfieldandtype(r, sk, st), oktype(val, ty, st), ∀ sk, class, ty, fieldvar, val, st, r, r0. sk .fs = mkfs(class, ty, fieldvar) ∧ oktype(val, ty, st) ∧ goodfieldandtype(r, sk, st) → sk = _type ∨ (goodfieldsandtypes(r0, sks0, st[r -- sk, val]) ↔ goodfieldsandtypes(r0, sks0, st)) ⊦ sk = _type, goodfieldandtype(r0, sk0, st) ∧ goodfieldsandtypes(r0, sks0, st[r -- sk, val]) ↔ goodfieldandtype(r0, sk0, st) ∧ goodfieldsandtypes(r0, sks0, st) |
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (sk, class, ty, fieldvar, val, st, r, r0)]]