NO Problem 1: (VAR v_NonEmpty:S M:S N:S X:S Y:S) (RULES filter(cons(X:S,Y:S),0,M:S) -> cons(0,filter(Y:S,M:S,M:S)) filter(cons(X:S,Y:S),s(N:S),M:S) -> cons(X:S,filter(Y:S,N:S,M:S)) nats(N:S) -> cons(N:S,nats(s(N:S))) sieve(cons(0,Y:S)) -> cons(0,sieve(Y:S)) sieve(cons(s(N:S),Y:S)) -> cons(s(N:S),sieve(filter(Y:S,N:S,N:S))) zprimes -> sieve(nats(s(s(0)))) ) Problem 1: Dependency Pairs Processor: -> Pairs: FILTER(cons(X:S,Y:S),0,M:S) -> FILTER(Y:S,M:S,M:S) FILTER(cons(X:S,Y:S),s(N:S),M:S) -> FILTER(Y:S,N:S,M:S) NATS(N:S) -> NATS(s(N:S)) SIEVE(cons(0,Y:S)) -> SIEVE(Y:S) SIEVE(cons(s(N:S),Y:S)) -> FILTER(Y:S,N:S,N:S) SIEVE(cons(s(N:S),Y:S)) -> SIEVE(filter(Y:S,N:S,N:S)) ZPRIMES -> NATS(s(s(0))) ZPRIMES -> SIEVE(nats(s(s(0)))) -> Rules: filter(cons(X:S,Y:S),0,M:S) -> cons(0,filter(Y:S,M:S,M:S)) filter(cons(X:S,Y:S),s(N:S),M:S) -> cons(X:S,filter(Y:S,N:S,M:S)) nats(N:S) -> cons(N:S,nats(s(N:S))) sieve(cons(0,Y:S)) -> cons(0,sieve(Y:S)) sieve(cons(s(N:S),Y:S)) -> cons(s(N:S),sieve(filter(Y:S,N:S,N:S))) zprimes -> sieve(nats(s(s(0)))) Problem 1: Infinite Processor: -> Pairs: FILTER(cons(X:S,Y:S),0,M:S) -> FILTER(Y:S,M:S,M:S) FILTER(cons(X:S,Y:S),s(N:S),M:S) -> FILTER(Y:S,N:S,M:S) NATS(N:S) -> NATS(s(N:S)) SIEVE(cons(0,Y:S)) -> SIEVE(Y:S) SIEVE(cons(s(N:S),Y:S)) -> FILTER(Y:S,N:S,N:S) SIEVE(cons(s(N:S),Y:S)) -> SIEVE(filter(Y:S,N:S,N:S)) ZPRIMES -> NATS(s(s(0))) ZPRIMES -> SIEVE(nats(s(s(0)))) -> Rules: filter(cons(X:S,Y:S),0,M:S) -> cons(0,filter(Y:S,M:S,M:S)) filter(cons(X:S,Y:S),s(N:S),M:S) -> cons(X:S,filter(Y:S,N:S,M:S)) nats(N:S) -> cons(N:S,nats(s(N:S))) sieve(cons(0,Y:S)) -> cons(0,sieve(Y:S)) sieve(cons(s(N:S),Y:S)) -> cons(s(N:S),sieve(filter(Y:S,N:S,N:S))) zprimes -> sieve(nats(s(s(0)))) -> Pairs in cycle: NATS(N:S) -> NATS(s(N:S)) The problem is infinite.