| ∀ r, class1, st, sk, val. (addobj(r, class1, fis0, st)[r -- sk, val]) = addobj(r, class1, fis0[sk, val], st) ⊦ (addobj(r, class1, fis0, st)[r -- sk0, val0][r -- sk, val]) = addobj(r, class1, ((sk0 × val0) ' + fis0)[sk, val], st) |
⊦ sk ≠ sk0 → ((sk0 × val) ' + fis)[sk, val0] = (sk0 × val) ' + fis[sk, val0]
⊦ addobj(r, class1, (sk × val) ' + fis, st) = (addobj(r, class1, fis, st)[r -- sk, val])
sk ≠ sk0, ∀ r, class1, st, sk, val. (addobj(r, class1, fis0, st)[r -- sk, val]) = addobj(r, class1, fis0[sk, val], st) ⊦ (addobj(r, class1, fis0, st)[r -- sk0, val0][r -- sk, val]) = addobj(r, class1, (sk0 × val0) ' + fis0[sk, val], st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (st[rk, val][rk, val0]) = st[rk, val0]], [CSIMPSEQ : ⊦ ((sk × val) ' + fis)[sk, val0] = (sk × val0) ' + fis], [CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1])], [EXTRATERMS : (val, sk, fis0, val0, sk0)]]