| unique_al(fis0), ∀ r0, class0, st0. r0 ≠ jvmref → instore(r0, class0, fis0, addobj(r0, class0, fis0, st0)) ⊦ sk = _type, r = jvmref, sk ∈ fis0, (r -- (sk × val) .1) × (sk × val) .2 ∈ addobj(r, class, fis0, st[r -- sk, val]) ∧ instore(r, class, fis0, addobj(r, class, fis0, st[r -- sk, val])), _type ∈ fis0 |
⊦ r -- sk ∈ addobj(r, class, fis, st) ↔ ¬ ¬ (sk ∈ fis ∨ sk = _type ∨ r -- sk ∈ st)
⊦ ¬ sk ∈ fis ∧ sk ≠ _type → (addobj(r, class, fis, st)[r -- sk]) = st[r -- sk]
unique_al(fis0), ∀ r0, class0, st0. r0 ≠ jvmref → instore(r0, class0, fis0, addobj(r0, class0, fis0, st0)) ⊦ sk = _type, r = jvmref, sk ∈ fis0, _type ∈ fis0, instore(r, class, fis0, addobj(r, class, fis0, st[r -- sk, val]))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (st[rk0, val][rk]) = ((rk = rk0 ⊃ val; st[rk]))], [CSIMPSEQ : ⊦ rk ∈ st[rk0, val] ↔ rk = rk0 ∨ rk ∈ st], [CSIMPSEQ : ⊦ rk × val ∈ st ↔ ¬ ¬ (rk ∈ st ∧ st[rk] = val)], [CSIMPSEQ : ⊦ (sk × val) .2 = val], [CSIMPSEQ : ⊦ (sk × val) .1 = sk])]]