| r = r0, (addobj(r, class, [], st)[r0 -- _type]) = typeval(ty), r0 ∈ addobj(r, class, [], st), is_predefined_class(class), newref(r, st), compatmode(str, st), compatstatic(str, st), compatrefs(str, st), r0 -- _type ∈ addobj(r, class, [], st) ⊦ r = jvmref, r0 = jvmref, (is_classtype(ty) ∧ class+∃(str, ty .class) → compatobj(str, r0, addobj(r, class, [], st))) ∧ (is_arraytype(ty) ∧ (¬ has_classtype(ty) ∨ tdname+∃(str, ty .type .jtelemtype .class)) → compatarray(str, r0, addobj(r, class, [], st))) |
compatrefs(str, st), compatstatic(str, st), compatmode(str, st), newref(r0, st), is_predefined_class(class), class+∃(str, class) ⊦ r0 = jvmref, compatobj(str, r0, addobj(r0, class, [], st))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_arraytype(mkclasstype(class))], [CSIMPSEQ : ⊦ mkclasstype(class) .class = class], [CSIMPSEQ : ⊦ is_classtype(mkclasstype(class))], [CSIMPFORWARD : ⊦ newref(r, st) → r ≠ jvmref], [CSIMPSEQ : ⊦ r -- _type ∈ addobj(r, class1, fis, st)], [CSIMPSEQ : ⊦ r ∈ addobj(r, class1, fis, st)], [CSIMPSEQ : ⊦ typeval(ty) = typeval(ty0) ↔ ty = ty0], [CSIMPSEQ : ⊦ (addobj(r, class1, [], st) [r -- _type ] ) = typeval(mkclasstype(class1))])]]