| (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))) |
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)))
(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 = r0, 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)))
[[CONCRETESIMPRULES : ()], [EXTRAFMAS : (r = r0)]]