| ⊦ r0 ∈ st → (okclass(refval(r0), class1, st[r -- i ', val0]) ↔ okclass(refval(r0), class1, st)) |
⊦ okclass(val, class1, st) ↔ reftypep(val, st) ∧ (val .refval ≠ jvmref → val .refval -- _type ∈ st ∧ st[val .refval -- _type] = typeval(mkclasstype(class1)))
⊦ okclass(refval(jvmref), class1, st)
st[r0 -- _type] = typeval(mkclasstype(class1)), r0 -- _type ∈ st, r0 ∈ st ⊦ r0 = jvmref, okclass(refval(r0), class1, st)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r -- sk ∈ st → r ∈ st], [CSIMPSEQ : ⊦ (st[r -- i ', val][r0 -- _type]) = st[r0 -- _type]], [CSIMPSEQ : ⊦ r -- _type ∈ st[r0 -- i ', val0] ↔ r -- _type ∈ st], [CSIMPSEQ : ⊦ refval(r) .refval = r], [CSIMPSEQ : ⊦ r ∈ st → reftypep(refval(r), st)], [CSIMPSEQ : ⊦ r0 ∈ st → ( reftypep (refval(r0), st[r -- i ', val0]) ↔ reftypep(refval(r0), st))])]]