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