| validrefs(str, r ', mkclasstype(`java.lang.Object' .class), st0), validrefnotnull(str, r, st[r -- _type] .type, st), st ⊆ st0, newref(r, st) ⊦ r = jvmref |
⊦ validrefs(str, r ', ty, st) ↔ r = jvmref ∨ r ≠ jvmref ∧ is_valid_ref(str, r, st) ∧ st[r -- _type] .type ≤ ty
r = jvmref ∨ r ≠ jvmref ∧ is_valid_ref(str, r, st0) ∧ st0[r -- _type] .type ≤ mkclasstype(`java.lang.Object' .class), validrefnotnull(str, r, st[r -- _type] .type, st), st ⊆ st0, newref(r, st) ⊦ r = jvmref
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st0, mkclasstype(`java.lang.Object' .class), r, str)]]