| ∀ sk, r, class1, st, val. sk = _type ∨ (addobj(r, class1, fis0, st)[r -- sk, val]) = addobj(r, class1, fis0, st[r -- sk, val]) ∨ sk ∈ fis0 ⊦ sk = _type, (addobj(r, class1, fis0, st)[r -- fv .1, fv .2][r -- sk, val]) = (addobj(r, class1, fis0, st[r -- sk, val])[r -- fv .1, fv .2]), sk ∈ fv ', sk ∈ fis0 |
fv = sk0 × val0, ∀ sk, r, class1, st, val. sk = _type ∨ (addobj(r, class1, fis0, st)[r -- sk, val]) = addobj(r, class1, fis0, st[r -- sk, val]) ∨ sk ∈ fis0 ⊦ sk = _type, (addobj(r, class1, fis0, st)[r -- sk0, val0][r -- sk, val]) = (addobj(r, class1, fis0, st[r -- sk, val])[r -- sk0, val0]), sk ∈ fv ', sk ∈ fis0
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ sk = fv .1 ∧ val = fv .2 ↔ fv = sk × val])], [EXTRATERMS : (fv, sk0, val0)]]