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..