NO Problem 1: (VAR v_NonEmpty:S N:S X:S XS:S) (RULES 2nd(cons(X:S,XS:S)) -> head(XS:S) from(X:S) -> cons(X:S,from(s(X:S))) head(cons(X:S,XS:S)) -> X:S sel(0,cons(X:S,XS:S)) -> X:S sel(s(N:S),cons(X:S,XS:S)) -> sel(N:S,XS:S) take(0,XS:S) -> nil take(s(N:S),cons(X:S,XS:S)) -> cons(X:S,take(N:S,XS:S)) ) Problem 1: Dependency Pairs Processor: -> Pairs: 2ND(cons(X:S,XS:S)) -> HEAD(XS:S) FROM(X:S) -> FROM(s(X:S)) SEL(s(N:S),cons(X:S,XS:S)) -> SEL(N:S,XS:S) TAKE(s(N:S),cons(X:S,XS:S)) -> TAKE(N:S,XS:S) -> Rules: 2nd(cons(X:S,XS:S)) -> head(XS:S) from(X:S) -> cons(X:S,from(s(X:S))) head(cons(X:S,XS:S)) -> X:S sel(0,cons(X:S,XS:S)) -> X:S sel(s(N:S),cons(X:S,XS:S)) -> sel(N:S,XS:S) take(0,XS:S) -> nil take(s(N:S),cons(X:S,XS:S)) -> cons(X:S,take(N:S,XS:S)) Problem 1: Infinite Processor: -> Pairs: 2ND(cons(X:S,XS:S)) -> HEAD(XS:S) FROM(X:S) -> FROM(s(X:S)) SEL(s(N:S),cons(X:S,XS:S)) -> SEL(N:S,XS:S) TAKE(s(N:S),cons(X:S,XS:S)) -> TAKE(N:S,XS:S) -> Rules: 2nd(cons(X:S,XS:S)) -> head(XS:S) from(X:S) -> cons(X:S,from(s(X:S))) head(cons(X:S,XS:S)) -> X:S sel(0,cons(X:S,XS:S)) -> X:S sel(s(N:S),cons(X:S,XS:S)) -> sel(N:S,XS:S) take(0,XS:S) -> nil take(s(N:S),cons(X:S,XS:S)) -> cons(X:S,take(N:S,XS:S)) -> Pairs in cycle: FROM(X:S) -> FROM(s(X:S)) The problem is infinite.