| r ∈ st, r -- sk ∈ st, unique_al(fv ' + fis0), instore(r, class, fv ' + fis0, st), ∀ r0, st0, sk0, class0, r2. r0 ∈ st0 ∧ r0 -- sk0 ∈ st0 ∧ unique_al(fis0) ∧ instore(r0, class0, fis0, st0) → _type = sk0 ∨ sk0 ∈ fis0 ∨ instore(r0, class0, fis0, st0[r0 -- sk0, refval(r2)]) ⊦ _type = sk, sk ∈ fv ', sk ∈ fis0, _type ∈ fv ', _type ∈ fis0, r -- fv .1 ∈ st ∧ (st[r -- sk, refval(r1)][r -- fv .1]) = fv .2 ∧ instore(r, class, fis0, st[r -- sk, refval(r1)]) |
fv = sk1 × val, r ∈ st, r -- sk ∈ st, unique_al(fv ' + fis0), instore(r, class, fv ' + fis0, st), ∀ r0, st0, sk0, class0, r2. r0 ∈ st0 ∧ r0 -- sk0 ∈ st0 ∧ unique_al(fis0) ∧ instore(r0, class0, fis0, st0) → _type = sk0 ∨ sk0 ∈ fis0 ∨ instore(r0, class0, fis0, st0[r0 -- sk0, refval(r2)]) ⊦ _type = sk, sk ∈ fv ', sk ∈ fis0, _type ∈ fv ', _type ∈ fis0, r -- sk1 ∈ st ∧ (st[r -- sk, refval(r1)][r -- sk1]) = val ∧ instore(r, class, fis0, st[r -- sk, refval(r1)])
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ sk = fv .1 ∧ val = fv .2 ↔ fv = sk × val])], [EXTRATERMS : (fv, sk1, val)]]