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