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