| validref(str, r, mkclasstype(str0 .class), st) ⊦ str0 = `java.lang.Object', r = jvmref, is_obj(str, r, st) |
⊦ r ≠ jvmref ∧ (¬ is_valid_ref(str, r, st) ∨ ¬ st[r -- _type] .type ≤ ty) → ¬ validref(str, r, ty, st)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_obj(str, r, st) → ( is_valid_ref(str, r, st) ↔ is_array(str, r, st))], [CSIMPSEQ : ⊦ is_array(str, r, st) → ( st[r -- _type] .type ≤ mkclasstype(class) ↔ class = `java.lang.Object' .class)], [CSIMPSEQ : ⊦ stringvar .class = stringvar0 .class ↔ stringvar = stringvar0])], [EXTRATERMS : (st, mkclasstype(str0 .class), r, str)]]