YES TRS: from(X) -> cons(X,n__from(s(X))) first(0(),Z) -> nil() first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z))) sel(0(),cons(X,Z)) -> X sel(s(X),cons(Y,Z)) -> sel(X,activate(Z)) from(X) -> n__from(X) first(X1,X2) -> n__first(X1,X2) activate(n__from(X)) -> from(X) activate(n__first(X1,X2)) -> first(X1,X2) activate(X) -> X linear polynomial interpretations on N: from_A(x1) = x1 + 2 from#_A(x1) = x1 + 1 cons_A(x1,x2) = x1 + x2 + 1 cons#_A(x1,x2) = 0 n__from_A(x1) = x1 + 1 n__from#_A(x1) = 0 s_A(x1) = 0 s#_A(x1) = 0 first_A(x1,x2) = x2 + 2 first#_A(x1,x2) = x2 + 1 0_A = 1 0#_A = 1 nil_A = 0 nil#_A = 0 n__first_A(x1,x2) = x2 + 1 n__first#_A(x1,x2) = 0 activate_A(x1) = x1 + 1 activate#_A(x1) = x1 + 1 sel_A(x1,x2) = x2 sel#_A(x1,x2) = x2 + 1 precedence: s > from = first = 0 > cons = n__from = nil = n__first = sel > activate