| st[r0 -- _type] = typeval(mkclasstype(class0)), class+∃(str, class0), r0 ∈ st, r0 -- _type ∈ st, compatstatic(str, st), compatmode(str, st), newref(r, st), is_predefined_class(class), compatobj(str, r0, st) ⊦ r0 = jvmref, r = jvmref, is_classtype((addobj(r, class, [], st)[r0 -- _type]) .type) ∧ class+∃(str, (addobj(r, class, [], st)[r0 -- _type]) .type .class) ∧ compatfields(str, r0, instfields((addobj(r, class, [], st)[r0 -- _type]) .type .class), addobj(r, class, [], st)) |
st[r0 -- _type] = typeval(mkclasstype(class0)), compatobj(str, r0, st), is_predefined_class(class), newref(r, st), compatmode(str, st), compatstatic(str, st), r0 -- _type ∈ st, r0 ∈ st, class+∃(str, class0) ⊦ r = jvmref, r0 = jvmref, compatfields(str, r0, instfields(class0), addobj(r, class, [], st))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ mkclasstype(class) .class = class], [CSIMPSEQ : ⊦ is_classtype(mkclasstype(class))], [CSIMPSEQ : ⊦ typeval(ty) .type = ty], [CSIMPSEQ : ⊦ r0 ∈ st ∧ newref(r, st) → (addobj(r, class1, fis, st) [r0 -- sk ] ) = st[r0 -- sk]])]]