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