| ∀ sk, class, ty, fieldvar, val, st, r0, r. sk .fs = mkfs(class, ty, fieldvar) ∧ oktype(val, ty, st) ∧ goodfieldandtype(r0, sk, st) → sk = _type ∨ sk = _length ∨ (okarrays(r, fis0, st[r0 -- sk, val]) ↔ okarrays(r, fis0, st)) ∨ sk ∈ fis0, sk .fs = mkfs(class, ty, fieldvar), oktype(val, ty, st), goodfieldandtype(r0, sk, st) ⊦ sk = _type, sk = _length, okarrays(r, fv + fis0, st[r0 -- sk, val]) ↔ okarrays(r, fv + fis0, st), sk ∈ fv + fis0 |
sk .fs = mkfs(class, ty, fieldvar), oktype(val, ty, st), goodfieldandtype(r0, sk, st), ∀ sk, class, ty, fieldvar, val, st, r0, r. sk .fs = mkfs(class, ty, fieldvar) ∧ oktype(val, ty, st) ∧ goodfieldandtype(r0, sk, st) → sk = _type ∨ sk = _length ∨ (okarrays(r, fis0, st[r0 -- sk, val]) ↔ okarrays(r, fis0, st)) ∨ sk ∈ fis0 ⊦ sk = _type, sk = _length, okarrays(r, fv ' + fis0, st[r0 -- sk, val]) ↔ okarrays(r, fv ' + fis0, st), sk ∈ fv ', sk ∈ fis0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1], [CSIMPSEQ : ⊦ sk ∈ fis + fis0 ↔ sk ∈ fis ∨ sk ∈ fis0], [CSIMPSEQ : ⊦ fv + fis = fv ' + fis])]]