| st[r0 -- _type] = st0[r0 -- _type], is_classtype(st0[r0 -- _type] .type), path∃(str, r, r0, st), path∃(str, r, r0, st0), sk ∈ instfields(st0[r0 -- _type] .type .class), ∀ fs. fs ' ∈ instfields(st0[r0 -- _type] .type .class) → st[r0 -- fs '] = st0[r0 -- fs '] ⊦ r0 = jvmref, st[r0 -- sk] = st0[r0 -- sk] |
st0[r0 -- _type] .type = mkclasstype(class), st[r0 -- _type] = st0[r0 -- _type], is_classtype(st0[r0 -- _type] .type), path∃(str, r, r0, st), path∃(str, r, r0, st0), sk ∈ instfields(class), ∀ fs. fs ' ∈ instfields(class) → st[r0 -- fs '] = st0[r0 -- fs '] ⊦ r0 = jvmref, st[r0 -- sk] = st0[r0 -- sk]
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_classtype(ty) → ( class = ty .class ↔ ty = mkclasstype(class))])], [EXTRATERMS : (st0[r0 -- _type] .type, class)]]