| disjoint(str, refs, st), r ∈ refs, r1 ∈ refs, sk ∈ instfields(st[r1 -- _type] .type .class), is_classtype(st[r1 -- _type] .type) ⊦ r1 = jvmref, r = r1, junkref(str, r1, st), disjoint(str, (refs -l r1) + st[r1 -- sk] .refval ', st) |
st[r1 -- _type] .type = mkclasstype(class), disjoint(str, refs, st), r ∈ refs, r1 ∈ refs, sk ∈ instfields(class), is_classtype(st[r1 -- _type] .type) ⊦ r1 = jvmref, r = r1, junkref(str, r1, st), disjoint(str, (refs -l r1) + st[r1 -- sk] .refval ', st)
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_classtype(ty) → ( class = ty .class ↔ ty = mkclasstype(class))])], [EXTRATERMS : (st[r1 -- _type] .type, class)]]