NO Problem 1: (VAR v_NonEmpty:S X:S Y:S Z:S) (RULES first(0,Z:S) -> nil first(s(X:S),cons(Y:S,Z:S)) -> cons(Y:S,first(X:S,Z:S)) from(X:S) -> cons(X:S,from(s(X:S))) sel(0,cons(X:S,Z:S)) -> X:S sel(s(X:S),cons(Y:S,Z:S)) -> sel(X:S,Z:S) ) Problem 1: Dependency Pairs Processor: -> Pairs: FIRST(s(X:S),cons(Y:S,Z:S)) -> FIRST(X:S,Z:S) FROM(X:S) -> FROM(s(X:S)) SEL(s(X:S),cons(Y:S,Z:S)) -> SEL(X:S,Z:S) -> Rules: first(0,Z:S) -> nil first(s(X:S),cons(Y:S,Z:S)) -> cons(Y:S,first(X:S,Z:S)) from(X:S) -> cons(X:S,from(s(X:S))) sel(0,cons(X:S,Z:S)) -> X:S sel(s(X:S),cons(Y:S,Z:S)) -> sel(X:S,Z:S) Problem 1: Infinite Processor: -> Pairs: FIRST(s(X:S),cons(Y:S,Z:S)) -> FIRST(X:S,Z:S) FROM(X:S) -> FROM(s(X:S)) SEL(s(X:S),cons(Y:S,Z:S)) -> SEL(X:S,Z:S) -> Rules: first(0,Z:S) -> nil first(s(X:S),cons(Y:S,Z:S)) -> cons(Y:S,first(X:S,Z:S)) from(X:S) -> cons(X:S,from(s(X:S))) sel(0,cons(X:S,Z:S)) -> X:S sel(s(X:S),cons(Y:S,Z:S)) -> sel(X:S,Z:S) -> Pairs in cycle: FROM(X:S) -> FROM(s(X:S)) The problem is infinite.