| st1 .refs ∩ st .refs = ∅, junkref(str, r, st1 ∪ st), r ∈ st1 ⊦ junkref(str, r, st1) |
⊦ junkref(str, r, st) ↔ (∃ refs. refs ≠ [] ∧ refs .first = r ∧ junkrefs(str, refs, st[r -- _type] .type, st))
st1 .refs ∩ st .refs = ∅, ∃ refs. refs ≠ [] ∧ refs .first = r ∧ junkrefs(str, refs, (st1 ∪ st)[r -- _type] .type, st1 ∪ st), r ∈ st1 ⊦ junkref(str, r, st1)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (st1 ∪ st, r, str)]]