| st ⊆ st1, r1 ∈ st, r1 -- _type ∈ st, validrefs(str, r1 ' + refs0, st[r1 -- _type] .type, st1), validrefs(str, refs0 .last ', st1[refs0 .last -- _type] .type, st1), newref(refs0 .last, st) ⊦ refs0 = [], refs0 .last = jvmref, refs0 .last = r1, junkref(str, r1, st), is_valid_ref(str, refs0 .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[refs0 .last -- _type] .type, refs0 .last, str)]]