| ¬ (r ≠ jvmref ∧ (¬ is_valid_ref(str, r, st) ∨ ¬ st[r -- _type] .type ≤ ty)), st[r -- _type] .type = mkclasstype(class), validref(str, r, ty, st) ⊦ r = jvmref, tdname+∃(str, class) |
st[r -- _type] .type = mkclasstype(class), is_obj(str, r, st), validref(str, r, ty, st), is_classtype(ty), class ≤ ty .class ⊦ r = jvmref, tdname+∃(str, class)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : typefuns, , class-le, ⊦ mkclasstype(class) ≤ ty ↔ is_classtype(ty) ∧ class ≤ ty .class], [CSIMPNAMEDSEQ : addfuns, , is_valid_ref-type-01, ⊦ st[r -- _type] .type = mkclasstype(class) → ( is_valid_ref(str, r, st) ↔ is_obj(str, r, st))])]]