NO Problem 1: (VAR v_NonEmpty:S L:S X:S Y:S) (RULES eq(0,0) -> ttrue eq(s(X:S),s(Y:S)) -> eq(X:S,Y:S) eq(X:S,Y:S) -> ffalse inf(X:S) -> cons(X:S,inf(s(X:S))) length(cons(X:S,L:S)) -> s(length(L:S)) length(nil) -> 0 take(0,X:S) -> nil take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) ) Problem 1: Dependency Pairs Processor: -> Pairs: EQ(s(X:S),s(Y:S)) -> EQ(X:S,Y:S) INF(X:S) -> INF(s(X:S)) LENGTH(cons(X:S,L:S)) -> LENGTH(L:S) TAKE(s(X:S),cons(Y:S,L:S)) -> TAKE(X:S,L:S) -> Rules: eq(0,0) -> ttrue eq(s(X:S),s(Y:S)) -> eq(X:S,Y:S) eq(X:S,Y:S) -> ffalse inf(X:S) -> cons(X:S,inf(s(X:S))) length(cons(X:S,L:S)) -> s(length(L:S)) length(nil) -> 0 take(0,X:S) -> nil take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) Problem 1: Infinite Processor: -> Pairs: EQ(s(X:S),s(Y:S)) -> EQ(X:S,Y:S) INF(X:S) -> INF(s(X:S)) LENGTH(cons(X:S,L:S)) -> LENGTH(L:S) TAKE(s(X:S),cons(Y:S,L:S)) -> TAKE(X:S,L:S) -> Rules: eq(0,0) -> ttrue eq(s(X:S),s(Y:S)) -> eq(X:S,Y:S) eq(X:S,Y:S) -> ffalse inf(X:S) -> cons(X:S,inf(s(X:S))) length(cons(X:S,L:S)) -> s(length(L:S)) length(nil) -> 0 take(0,X:S) -> nil take(s(X:S),cons(Y:S,L:S)) -> cons(Y:S,take(X:S,L:S)) -> Pairs in cycle: INF(X:S) -> INF(s(X:S)) The problem is infinite.