We are left with following problem, upon which TcT provides the
certificate YES(?,O(1)).

Strict Trs:
  { filter(cons(X), 0(), M) -> cons(0())
  , filter(cons(X), s(N), M) -> cons(X)
  , sieve(cons(0())) -> cons(0())
  , sieve(cons(s(N))) -> cons(s(N))
  , nats(N) -> cons(N)
  , zprimes() -> sieve(nats(s(s(0())))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,O(1))

The input was oriented with the instance of 'Small Polynomial Path
Order (PS)' as induced by the safe mapping

 safe(filter) = {2}, safe(cons) = {1}, safe(0) = {}, safe(s) = {1},
 safe(sieve) = {1}, safe(nats) = {1}, safe(zprimes) = {}

and precedence

 zprimes > sieve, zprimes > nats .

Following symbols are considered recursive:

 {}

The recursion depth is 0.

For your convenience, here are the satisfied ordering constraints:

     filter(cons(; X),  M; 0()) > cons(; 0())                   
                                                                
  filter(cons(; X),  M; s(; N)) > cons(; X)                     
                                                                
           sieve(; cons(; 0())) > cons(; 0())                   
                                                                
        sieve(; cons(; s(; N))) > cons(; s(; N))                
                                                                
                      nats(; N) > cons(; N)                     
                                                                
                      zprimes() > sieve(; nats(; s(; s(; 0()))))
                                                                

Hurray, we answered YES(?,O(1))