Consider the TRS R consisting of the rewrite rules

1: filter(cons(X),0,M) -> cons(0)
2: filter(cons(X),s(N),M) -> cons(X)
3: sieve(cons(0)) -> cons(0)
4: sieve(cons(s(N))) -> cons(s(N))
5: nats(N) -> cons(N)
6: zprimes -> sieve(nats(s(s(0))))

There are 2 dependency pairs:

7: ZPRIMES -> SIEVE(nats(s(s(0))))
8: ZPRIMES -> NATS(s(s(0)))

The approximated dependency graph contains no SCCs
and hence the TRS is trivially terminating.