| viewvar(tr .last) = C, ∀ tr0, viewvar, ev. # tr0 < # tr → (viewvar(ev) = C ∧ ev ∈ tr0 → (∃ tr2, ev0, tr1. tr0 = tr2 + ev0 ' + tr1 ∧ viewvar(ev0) = C ∧ proj(tr1, Cview(viewvar)) = [])) ⊦ tr = [], tr .last ∈ tr .butlast, ∃ tr0, ev0, tr1. tr = tr0 + ev0 ' + tr1 ∧ viewvar(ev0) = C ∧ proj(tr1, Cview(viewvar)) = [] |
tr = tr3 + ev1 ', viewvar(ev1) = C, ∀ tr0, viewvar, ev. # tr0 < # tr → (viewvar(ev) = C ∧ ev ∈ tr0 → (∃ tr2, ev0, tr1. tr0 = tr2 + ev0 ' + tr1 ∧ viewvar(ev0) = C ∧ proj(tr1, Cview(viewvar)) = [])) ⊦ tr = [], ev1 ∈ tr3, ∃ tr0, ev0, tr1. tr = tr0 + ev0 ' + tr1 ∧ viewvar(ev0) = C ∧ proj(tr1, Cview(viewvar)) = []
[[CONCRETESIMPRULES : ([CSIMPELIM : tr ≠ [] ⊦ ev = tr .last ∧ tr0 = tr .butlast ↔ tr = tr0 + ev '])], [EXTRATERMS : (tr, ev1, tr3)]]