| oktype(val, ty, st), okarray(st[r -- mkfs(class, mkarraytype(ty1), fieldvar0) '], ty1, i, st), okarrays(r, fis0, st), okarrays(r, fis0, st[r0 -- mkfs(class0, ty, fieldvar) ', val]), class0 ≠ class ∨ ty ≠ mkarraytype(ty1) ∨ fieldvar ≠ fieldvar0 ⊦ mkfs(class0, ty, fieldvar) ' = _type, mkfs(class0, ty, fieldvar) ' = _length, mkfs(class0, ty, fieldvar) ' ∈ fis0, okarray(st[r -- mkfs(class, mkarraytype(ty1), fieldvar0) '], ty1, i, st[r0 -- mkfs(class0, ty, fieldvar) ', val]) |
⊦ sk ≠ _length ∧ sk ≠ _type ∧ is_fskey(sk) → (okarray(val, ty, i, st[r -- sk, val0]) ↔ okarray(val, ty, i, st))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ is_fskey(fs ')])], [EXTRATERMS : (val, mkfs(class0, ty, fieldvar) ', r0, st, i, ty1, st[r -- mkfs(class, mkarraytype(ty1), fieldvar0) '])]]