MAYBE

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict Trs:
  { a__filter(X1, X2, X3) -> filter(X1, X2, X3)
  , a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M))
  , a__filter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(filter(X1, X2, X3)) ->
    a__filter(mark(X1), mark(X2), mark(X3))
  , mark(s(X)) -> s(mark(X))
  , mark(sieve(X)) -> a__sieve(mark(X))
  , mark(nats(X)) -> a__nats(mark(X))
  , mark(zprimes()) -> a__zprimes()
  , a__sieve(X) -> sieve(X)
  , a__sieve(cons(0(), Y)) -> cons(0(), sieve(Y))
  , a__sieve(cons(s(N), Y)) ->
    cons(s(mark(N)), sieve(filter(Y, N, N)))
  , a__nats(N) -> cons(mark(N), nats(s(N)))
  , a__nats(X) -> nats(X)
  , a__zprimes() -> a__sieve(a__nats(s(s(0()))))
  , a__zprimes() -> zprimes() }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We add following dependency tuples:

Strict DPs:
  { a__filter^#(X1, X2, X3) -> c_1()
  , a__filter^#(cons(X, Y), 0(), M) -> c_2()
  , a__filter^#(cons(X, Y), s(N), M) -> c_3(mark^#(X))
  , mark^#(cons(X1, X2)) -> c_4(mark^#(X1))
  , mark^#(0()) -> c_5()
  , mark^#(filter(X1, X2, X3)) ->
    c_6(a__filter^#(mark(X1), mark(X2), mark(X3)),
        mark^#(X1),
        mark^#(X2),
        mark^#(X3))
  , mark^#(s(X)) -> c_7(mark^#(X))
  , mark^#(sieve(X)) -> c_8(a__sieve^#(mark(X)), mark^#(X))
  , mark^#(nats(X)) -> c_9(a__nats^#(mark(X)), mark^#(X))
  , mark^#(zprimes()) -> c_10(a__zprimes^#())
  , a__sieve^#(X) -> c_11()
  , a__sieve^#(cons(0(), Y)) -> c_12()
  , a__sieve^#(cons(s(N), Y)) -> c_13(mark^#(N))
  , a__nats^#(N) -> c_14(mark^#(N))
  , a__nats^#(X) -> c_15()
  , a__zprimes^#() ->
    c_16(a__sieve^#(a__nats(s(s(0())))), a__nats^#(s(s(0()))))
  , a__zprimes^#() -> c_17() }

and mark the set of starting terms.

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__filter^#(X1, X2, X3) -> c_1()
  , a__filter^#(cons(X, Y), 0(), M) -> c_2()
  , a__filter^#(cons(X, Y), s(N), M) -> c_3(mark^#(X))
  , mark^#(cons(X1, X2)) -> c_4(mark^#(X1))
  , mark^#(0()) -> c_5()
  , mark^#(filter(X1, X2, X3)) ->
    c_6(a__filter^#(mark(X1), mark(X2), mark(X3)),
        mark^#(X1),
        mark^#(X2),
        mark^#(X3))
  , mark^#(s(X)) -> c_7(mark^#(X))
  , mark^#(sieve(X)) -> c_8(a__sieve^#(mark(X)), mark^#(X))
  , mark^#(nats(X)) -> c_9(a__nats^#(mark(X)), mark^#(X))
  , mark^#(zprimes()) -> c_10(a__zprimes^#())
  , a__sieve^#(X) -> c_11()
  , a__sieve^#(cons(0(), Y)) -> c_12()
  , a__sieve^#(cons(s(N), Y)) -> c_13(mark^#(N))
  , a__nats^#(N) -> c_14(mark^#(N))
  , a__nats^#(X) -> c_15()
  , a__zprimes^#() ->
    c_16(a__sieve^#(a__nats(s(s(0())))), a__nats^#(s(s(0()))))
  , a__zprimes^#() -> c_17() }
Weak Trs:
  { a__filter(X1, X2, X3) -> filter(X1, X2, X3)
  , a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M))
  , a__filter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(filter(X1, X2, X3)) ->
    a__filter(mark(X1), mark(X2), mark(X3))
  , mark(s(X)) -> s(mark(X))
  , mark(sieve(X)) -> a__sieve(mark(X))
  , mark(nats(X)) -> a__nats(mark(X))
  , mark(zprimes()) -> a__zprimes()
  , a__sieve(X) -> sieve(X)
  , a__sieve(cons(0(), Y)) -> cons(0(), sieve(Y))
  , a__sieve(cons(s(N), Y)) ->
    cons(s(mark(N)), sieve(filter(Y, N, N)))
  , a__nats(N) -> cons(mark(N), nats(s(N)))
  , a__nats(X) -> nats(X)
  , a__zprimes() -> a__sieve(a__nats(s(s(0()))))
  , a__zprimes() -> zprimes() }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We estimate the number of application of {1,2,5,11,12,15,17} by
applications of Pre({1,2,5,11,12,15,17}) =
{3,4,6,7,8,9,10,13,14,16}. Here rules are labeled as follows:

  DPs:
    { 1: a__filter^#(X1, X2, X3) -> c_1()
    , 2: a__filter^#(cons(X, Y), 0(), M) -> c_2()
    , 3: a__filter^#(cons(X, Y), s(N), M) -> c_3(mark^#(X))
    , 4: mark^#(cons(X1, X2)) -> c_4(mark^#(X1))
    , 5: mark^#(0()) -> c_5()
    , 6: mark^#(filter(X1, X2, X3)) ->
         c_6(a__filter^#(mark(X1), mark(X2), mark(X3)),
             mark^#(X1),
             mark^#(X2),
             mark^#(X3))
    , 7: mark^#(s(X)) -> c_7(mark^#(X))
    , 8: mark^#(sieve(X)) -> c_8(a__sieve^#(mark(X)), mark^#(X))
    , 9: mark^#(nats(X)) -> c_9(a__nats^#(mark(X)), mark^#(X))
    , 10: mark^#(zprimes()) -> c_10(a__zprimes^#())
    , 11: a__sieve^#(X) -> c_11()
    , 12: a__sieve^#(cons(0(), Y)) -> c_12()
    , 13: a__sieve^#(cons(s(N), Y)) -> c_13(mark^#(N))
    , 14: a__nats^#(N) -> c_14(mark^#(N))
    , 15: a__nats^#(X) -> c_15()
    , 16: a__zprimes^#() ->
          c_16(a__sieve^#(a__nats(s(s(0())))), a__nats^#(s(s(0()))))
    , 17: a__zprimes^#() -> c_17() }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__filter^#(cons(X, Y), s(N), M) -> c_3(mark^#(X))
  , mark^#(cons(X1, X2)) -> c_4(mark^#(X1))
  , mark^#(filter(X1, X2, X3)) ->
    c_6(a__filter^#(mark(X1), mark(X2), mark(X3)),
        mark^#(X1),
        mark^#(X2),
        mark^#(X3))
  , mark^#(s(X)) -> c_7(mark^#(X))
  , mark^#(sieve(X)) -> c_8(a__sieve^#(mark(X)), mark^#(X))
  , mark^#(nats(X)) -> c_9(a__nats^#(mark(X)), mark^#(X))
  , mark^#(zprimes()) -> c_10(a__zprimes^#())
  , a__sieve^#(cons(s(N), Y)) -> c_13(mark^#(N))
  , a__nats^#(N) -> c_14(mark^#(N))
  , a__zprimes^#() ->
    c_16(a__sieve^#(a__nats(s(s(0())))), a__nats^#(s(s(0())))) }
Weak DPs:
  { a__filter^#(X1, X2, X3) -> c_1()
  , a__filter^#(cons(X, Y), 0(), M) -> c_2()
  , mark^#(0()) -> c_5()
  , a__sieve^#(X) -> c_11()
  , a__sieve^#(cons(0(), Y)) -> c_12()
  , a__nats^#(X) -> c_15()
  , a__zprimes^#() -> c_17() }
Weak Trs:
  { a__filter(X1, X2, X3) -> filter(X1, X2, X3)
  , a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M))
  , a__filter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(filter(X1, X2, X3)) ->
    a__filter(mark(X1), mark(X2), mark(X3))
  , mark(s(X)) -> s(mark(X))
  , mark(sieve(X)) -> a__sieve(mark(X))
  , mark(nats(X)) -> a__nats(mark(X))
  , mark(zprimes()) -> a__zprimes()
  , a__sieve(X) -> sieve(X)
  , a__sieve(cons(0(), Y)) -> cons(0(), sieve(Y))
  , a__sieve(cons(s(N), Y)) ->
    cons(s(mark(N)), sieve(filter(Y, N, N)))
  , a__nats(N) -> cons(mark(N), nats(s(N)))
  , a__nats(X) -> nats(X)
  , a__zprimes() -> a__sieve(a__nats(s(s(0()))))
  , a__zprimes() -> zprimes() }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.

{ a__filter^#(X1, X2, X3) -> c_1()
, a__filter^#(cons(X, Y), 0(), M) -> c_2()
, mark^#(0()) -> c_5()
, a__sieve^#(X) -> c_11()
, a__sieve^#(cons(0(), Y)) -> c_12()
, a__nats^#(X) -> c_15()
, a__zprimes^#() -> c_17() }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__filter^#(cons(X, Y), s(N), M) -> c_3(mark^#(X))
  , mark^#(cons(X1, X2)) -> c_4(mark^#(X1))
  , mark^#(filter(X1, X2, X3)) ->
    c_6(a__filter^#(mark(X1), mark(X2), mark(X3)),
        mark^#(X1),
        mark^#(X2),
        mark^#(X3))
  , mark^#(s(X)) -> c_7(mark^#(X))
  , mark^#(sieve(X)) -> c_8(a__sieve^#(mark(X)), mark^#(X))
  , mark^#(nats(X)) -> c_9(a__nats^#(mark(X)), mark^#(X))
  , mark^#(zprimes()) -> c_10(a__zprimes^#())
  , a__sieve^#(cons(s(N), Y)) -> c_13(mark^#(N))
  , a__nats^#(N) -> c_14(mark^#(N))
  , a__zprimes^#() ->
    c_16(a__sieve^#(a__nats(s(s(0())))), a__nats^#(s(s(0())))) }
Weak Trs:
  { a__filter(X1, X2, X3) -> filter(X1, X2, X3)
  , a__filter(cons(X, Y), 0(), M) -> cons(0(), filter(Y, M, M))
  , a__filter(cons(X, Y), s(N), M) -> cons(mark(X), filter(Y, N, M))
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(filter(X1, X2, X3)) ->
    a__filter(mark(X1), mark(X2), mark(X3))
  , mark(s(X)) -> s(mark(X))
  , mark(sieve(X)) -> a__sieve(mark(X))
  , mark(nats(X)) -> a__nats(mark(X))
  , mark(zprimes()) -> a__zprimes()
  , a__sieve(X) -> sieve(X)
  , a__sieve(cons(0(), Y)) -> cons(0(), sieve(Y))
  , a__sieve(cons(s(N), Y)) ->
    cons(s(mark(N)), sieve(filter(Y, N, N)))
  , a__nats(N) -> cons(mark(N), nats(s(N)))
  , a__nats(X) -> nats(X)
  , a__zprimes() -> a__sieve(a__nats(s(s(0()))))
  , a__zprimes() -> zprimes() }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..