NO Problem 1: (VAR v_NonEmpty:S X:S XS:S) (RULES activate(n__incr(X:S)) -> incr(X:S) activate(X:S) -> X:S head(cons(X:S,XS:S)) -> X:S incr(cons(X:S,XS:S)) -> cons(s(X:S),n__incr(activate(XS:S))) incr(X:S) -> n__incr(X:S) nats -> cons(0,n__incr(nats)) odds -> incr(pairs) pairs -> cons(0,n__incr(odds)) tail(cons(X:S,XS:S)) -> activate(XS:S) ) Problem 1: Dependency Pairs Processor: -> Pairs: ACTIVATE(n__incr(X:S)) -> INCR(X:S) INCR(cons(X:S,XS:S)) -> ACTIVATE(XS:S) NATS -> NATS ODDS -> INCR(pairs) ODDS -> PAIRS PAIRS -> ODDS TAIL(cons(X:S,XS:S)) -> ACTIVATE(XS:S) -> Rules: activate(n__incr(X:S)) -> incr(X:S) activate(X:S) -> X:S head(cons(X:S,XS:S)) -> X:S incr(cons(X:S,XS:S)) -> cons(s(X:S),n__incr(activate(XS:S))) incr(X:S) -> n__incr(X:S) nats -> cons(0,n__incr(nats)) odds -> incr(pairs) pairs -> cons(0,n__incr(odds)) tail(cons(X:S,XS:S)) -> activate(XS:S) Problem 1: Infinite Processor: -> Pairs: ACTIVATE(n__incr(X:S)) -> INCR(X:S) INCR(cons(X:S,XS:S)) -> ACTIVATE(XS:S) NATS -> NATS ODDS -> INCR(pairs) ODDS -> PAIRS PAIRS -> ODDS TAIL(cons(X:S,XS:S)) -> ACTIVATE(XS:S) -> Rules: activate(n__incr(X:S)) -> incr(X:S) activate(X:S) -> X:S head(cons(X:S,XS:S)) -> X:S incr(cons(X:S,XS:S)) -> cons(s(X:S),n__incr(activate(XS:S))) incr(X:S) -> n__incr(X:S) nats -> cons(0,n__incr(nats)) odds -> incr(pairs) pairs -> cons(0,n__incr(odds)) tail(cons(X:S,XS:S)) -> activate(XS:S) -> Pairs in cycle: NATS -> NATS The problem is infinite.