| validrefs(str, r1 ' + refs1, st[r1 -- _type] .type, st), validrefs(str, refs1 .last ', st1[refs1 .last -- _type] .type, st1), r1 -- _type ∈ st, r1 ∈ st, st ⊆ st1, newref(refs1 .last, st) ⊦ refs1 = [], refs1 .last = jvmref, r1 = refs1 .last, junkref(str, r1, st), is_valid_ref(str, refs1 .last, st1) |
⊦ validrefs(str, r ', ty, st) ↔ r = jvmref ∨ r ≠ jvmref ∧ is_valid_ref(str, r, st) ∧ st[r -- _type] .type ≤ ty
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st1, st1[refs1 .last -- _type] .type, refs1 .last, str)]]