YES Problem: first(0(),X) -> nil() first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) from(X) -> cons(X,n__from(n__s(X))) first(X1,X2) -> n__first(X1,X2) from(X) -> n__from(X) s(X) -> n__s(X) activate(n__first(X1,X2)) -> first(activate(X1),activate(X2)) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Proof: WPO Processor: algebra: Max weight function: w0 = 0 w(0) = 1 w(n__from) = w(n__s) = w(from) = w(n__first) = w(activate) = w(cons) = w( s) = w(nil) = w(first) = 0 status function: st(n__from) = st(n__s) = st(from) = [0] st(n__first) = [0, 1] st(activate) = [0] st(cons) = [0, 1] st(s) = [0] st(nil) = [] st(first) = [0, 1] st(0) = [] subterm penalty function: sp(n__first, 1) = sp(first, 1) = 2 sp(n__from, 0) = sp(n__s, 0) = sp(from, 0) = sp(n__first, 0) = sp( activate, 0) = sp(cons, 1) = sp(cons, 0) = sp(s, 0) = sp(first, 0) = 0 precedence: activate > s > from ~ first > n__from ~ n__s ~ n__first ~ cons ~ nil ~ 0 problem: Qed