| ⊦ is_valid_ref(str, r0, st) ∧ sk ≠ _type ∧ ¬ path∃(str, r, r0, st) → (r = jvmref ∨ (st[r0 -- sk, val][r -- _type]) .type ≤ ty ∧ ¬ junkref(str, r, st[r0 -- sk, val]) ↔ validref(str, r, ty, st)) |
⊦ validref(str, r, ty, st) ↔ r = jvmref ∨ st[r -- _type] .type ≤ ty ∧ ¬ junkref(str, r, st)
⊦ is_valid_ref(str, r0, st) ∧ sk ≠ _type ∧ ¬ path∃(str, r, r0, st) → ( r = jvmref ∨ (st[r0 -- sk, val][r -- _type]) .type ≤ ty ∧ ¬ junkref(str, r, st[r0 -- sk, val]) ↔ r = jvmref ∨ st[r -- _type] .type ≤ ty ∧ ¬ junkref(str, r, st))
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st, ty, r, str)]]