(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

filter(cons(X, Y), 0, M) → cons(0, filter(Y, M, M))
filter(cons(X, Y), s(N), M) → cons(X, filter(Y, N, M))
sieve(cons(0, Y)) → cons(0, sieve(Y))
sieve(cons(s(N), Y)) → cons(s(N), sieve(filter(Y, N, N)))
nats(N) → cons(N, nats(s(N)))

Rewrite Strategy: FULL

(1) InfiniteLowerBoundProof (EQUIVALENT transformation)

The loop following loop proves infinite runtime complexity:
The rewrite sequence
nats(N) →+ cons(N, nats(s(N)))
gives rise to a decreasing loop by considering the right hand sides subterm at position [1].
The pumping substitution is [ ].
The result substitution is [N / s(N)].