| ⊦ r = r0, r ≠ jvmref ∧ (r -- _type) × typeval(mkclasstype(class)) ∈ st -- r0 ∧ (∀ sk. sk ∈ sks → goodfieldandtype(r, sk, st -- r0)) ↔ r ≠ jvmref ∧ r -- _type ∈ st ∧ st[r -- _type] = typeval(mkclasstype(class)) ∧ (∀ sk. sk ∈ sks → goodfieldandtype(r, sk, st)) |
st[r -- _type] = typeval(mkclasstype(class)), sk ∈ sks, r -- _type ∈ st, r ∈ st, ∀ sk. sk ∈ sks → goodfieldandtype(r, sk, st) ⊦ r = r0, r = jvmref, goodfieldandtype(r, sk, st)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPSEQ : ⊦ rk × val ∈ st ↔ ¬ ¬ (rk ∈ st ∧ st[rk] = val)], [CSIMPSEQ : ⊦ r ≠ r0 → ( goodfieldandtype (r, sk, st -- r0) ↔ goodfieldandtype(r, sk, st))], [CSIMPSEQ : ⊦ r ≠ r0 → (st -- r)[r0 -- sk0] = st[r0 -- sk0]], [CSIMPSEQ : ⊦ r -- sk ∈ st -- r0 ↔ r ≠ r0 ∧ r -- sk ∈ st], [CSIMPSEQ : ⊦ rk × val ∈ st ↔ rk ∈ st ∧ st[rk] = val])]]