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