| validrefs(str, refs, ty, st), r0 ∈ refs, ∀ r. r ∈ refs → unchangedNorec(r, st, st0) ⊦ refs = [], path∃(str, refs .first, r0, st0) |
refs = r1 + refs0, validrefs(str, refs, ty, st), r0 ∈ refs, ∀ r. r ∈ refs → unchangedNorec(r, st, st0) ⊦ refs = [], path∃(str, r1, r0, st0)
[[CONCRETESIMPRULES : ([CSIMPELIM : refs ≠ [] ⊦ r = refs .first ∧ refs0 = refs .rest ↔ refs = r + refs0])], [EXTRATERMS : (refs, r1, refs0)]]