NO Problem 1: (VAR v_NonEmpty:S X:S Y:S Z:S) (RULES filter(s(s(X:S)),cons(Y:S,Z:S)) -> if(divides(s(s(X:S)),Y:S),filter(s(s(X:S)),Z:S),cons(Y:S,filter(X:S,sieve(Y:S)))) from(X:S) -> cons(X:S,from(s(X:S))) head(cons(X:S,Y:S)) -> X:S if(ffalse,X:S,Y:S) -> Y:S if(ttrue,X:S,Y:S) -> X:S primes -> sieve(from(s(s(0)))) sieve(cons(X:S,Y:S)) -> cons(X:S,filter(X:S,sieve(Y:S))) tail(cons(X:S,Y:S)) -> Y:S ) Problem 1: Dependency Pairs Processor: -> Pairs: FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> FILTER(s(s(X:S)),Z:S) FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> FILTER(X:S,sieve(Y:S)) FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> IF(divides(s(s(X:S)),Y:S),filter(s(s(X:S)),Z:S),cons(Y:S,filter(X:S,sieve(Y:S)))) FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> SIEVE(Y:S) FROM(X:S) -> FROM(s(X:S)) PRIMES -> FROM(s(s(0))) PRIMES -> SIEVE(from(s(s(0)))) SIEVE(cons(X:S,Y:S)) -> FILTER(X:S,sieve(Y:S)) SIEVE(cons(X:S,Y:S)) -> SIEVE(Y:S) -> Rules: filter(s(s(X:S)),cons(Y:S,Z:S)) -> if(divides(s(s(X:S)),Y:S),filter(s(s(X:S)),Z:S),cons(Y:S,filter(X:S,sieve(Y:S)))) from(X:S) -> cons(X:S,from(s(X:S))) head(cons(X:S,Y:S)) -> X:S if(ffalse,X:S,Y:S) -> Y:S if(ttrue,X:S,Y:S) -> X:S primes -> sieve(from(s(s(0)))) sieve(cons(X:S,Y:S)) -> cons(X:S,filter(X:S,sieve(Y:S))) tail(cons(X:S,Y:S)) -> Y:S Problem 1: Infinite Processor: -> Pairs: FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> FILTER(s(s(X:S)),Z:S) FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> FILTER(X:S,sieve(Y:S)) FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> IF(divides(s(s(X:S)),Y:S),filter(s(s(X:S)),Z:S),cons(Y:S,filter(X:S,sieve(Y:S)))) FILTER(s(s(X:S)),cons(Y:S,Z:S)) -> SIEVE(Y:S) FROM(X:S) -> FROM(s(X:S)) PRIMES -> FROM(s(s(0))) PRIMES -> SIEVE(from(s(s(0)))) SIEVE(cons(X:S,Y:S)) -> FILTER(X:S,sieve(Y:S)) SIEVE(cons(X:S,Y:S)) -> SIEVE(Y:S) -> Rules: filter(s(s(X:S)),cons(Y:S,Z:S)) -> if(divides(s(s(X:S)),Y:S),filter(s(s(X:S)),Z:S),cons(Y:S,filter(X:S,sieve(Y:S)))) from(X:S) -> cons(X:S,from(s(X:S))) head(cons(X:S,Y:S)) -> X:S if(ffalse,X:S,Y:S) -> Y:S if(ttrue,X:S,Y:S) -> X:S primes -> sieve(from(s(s(0)))) sieve(cons(X:S,Y:S)) -> cons(X:S,filter(X:S,sieve(Y:S))) tail(cons(X:S,Y:S)) -> Y:S -> Pairs in cycle: FROM(X:S) -> FROM(s(X:S)) The problem is infinite.