/export/starexec/sandbox/solver/bin/starexec_run_ttt2 /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Proof: DP Processor: DPs: filter#(cons(X,Y),0(),M) -> activate#(Y) filter#(cons(X,Y),s(N),M) -> activate#(Y) sieve#(cons(0(),Y)) -> activate#(Y) sieve#(cons(s(N),Y)) -> activate#(Y) zprimes#() -> s#(0()) zprimes#() -> s#(s(0())) zprimes#() -> nats#(s(s(0()))) zprimes#() -> sieve#(nats(s(s(0())))) activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__nats(X)) -> activate#(X) activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> s#(activate(X)) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X TDG Processor: DPs: filter#(cons(X,Y),0(),M) -> activate#(Y) filter#(cons(X,Y),s(N),M) -> activate#(Y) sieve#(cons(0(),Y)) -> activate#(Y) sieve#(cons(s(N),Y)) -> activate#(Y) zprimes#() -> s#(0()) zprimes#() -> s#(s(0())) zprimes#() -> nats#(s(s(0()))) zprimes#() -> sieve#(nats(s(s(0())))) activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__nats(X)) -> activate#(X) activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> s#(activate(X)) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X graph: zprimes#() -> sieve#(nats(s(s(0())))) -> sieve#(cons(s(N),Y)) -> activate#(Y) zprimes#() -> sieve#(nats(s(s(0())))) -> sieve#(cons(0(),Y)) -> activate#(Y) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__nats(X)) -> nats#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__nats(X)) -> activate#(X) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__sieve(X)) -> activate#(X) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) sieve#(cons(s(N),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__nats(X)) -> nats#(activate(X)) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__nats(X)) -> activate#(X) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__sieve(X)) -> activate#(X) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) sieve#(cons(0(),Y)) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__nats(X)) -> activate#(X) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__nats(X)) -> activate#(X) -> activate#(n__s(X)) -> activate#(X) activate#(n__nats(X)) -> activate#(X) -> activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__nats(X)) -> activate#(X) -> activate#(n__nats(X)) -> activate#(X) activate#(n__nats(X)) -> activate#(X) -> activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__nats(X)) -> activate#(X) -> activate#(n__sieve(X)) -> activate#(X) activate#(n__nats(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__nats(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__nats(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__nats(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__s(X)) -> activate#(X) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__s(X)) -> activate#(X) -> activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> activate#(X) -> activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__s(X)) -> activate#(X) -> activate#(n__nats(X)) -> activate#(X) activate#(n__s(X)) -> activate#(X) -> activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__s(X)) -> activate#(X) -> activate#(n__sieve(X)) -> activate#(X) activate#(n__s(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__s(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__s(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__s(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__sieve(X)) -> sieve#(activate(X)) -> sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__sieve(X)) -> sieve#(activate(X)) -> sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__s(X)) -> activate#(X) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__nats(X)) -> activate#(X) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__sieve(X)) -> activate#(X) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__s(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__nats(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__sieve(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X3) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__s(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__nats(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__sieve(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X2) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__s(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__nats(X)) -> nats#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__nats(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__sieve(X)) -> sieve#(activate(X)) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__sieve(X)) -> activate#(X) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) -> filter#(cons(X,Y),s(N),M) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) -> filter#(cons(X,Y),0(),M) -> activate#(Y) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__nats(X)) -> nats#(activate(X)) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__nats(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__sieve(X)) -> sieve#(activate(X)) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__sieve(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) filter#(cons(X,Y),s(N),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__nats(X)) -> nats#(activate(X)) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__nats(X)) -> activate#(X) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__sieve(X)) -> sieve#(activate(X)) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__sieve(X)) -> activate#(X) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X1) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X2) filter#(cons(X,Y),0(),M) -> activate#(Y) -> activate#(n__filter(X1,X2,X3)) -> activate#(X3) SCC Processor: #sccs: 1 #rules: 12 #arcs: 106/324 DPs: sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__nats(X)) -> activate#(X) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Usable Rule Processor: DPs: sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__nats(X)) -> activate#(X) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) Arctic Interpretation Processor: dimension: 1 usable rules: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) interpretation: [n__filter](x0, x1, x2) = x0 + x1 + x2 + 2, [nats](x0) = 1x0, [0] = 0, [activate](x0) = x0, [s](x0) = x0, [n__nats](x0) = 1x0, [cons](x0, x1) = 1x0 + x1, [n__sieve](x0) = x0 + 2, [sieve#](x0) = x0 + 2, [filter#](x0, x1, x2) = x0 + x1 + x2, [n__s](x0) = x0, [activate#](x0) = x0, [sieve](x0) = x0 + 2, [filter](x0, x1, x2) = x0 + x1 + x2 + 2 orientation: sieve#(cons(0(),Y)) = Y + 2 >= Y = activate#(Y) activate#(n__filter(X1,X2,X3)) = X1 + X2 + X3 + 2 >= X3 = activate#(X3) activate#(n__filter(X1,X2,X3)) = X1 + X2 + X3 + 2 >= X2 = activate#(X2) activate#(n__filter(X1,X2,X3)) = X1 + X2 + X3 + 2 >= X1 = activate#(X1) activate#(n__filter(X1,X2,X3)) = X1 + X2 + X3 + 2 >= X1 + X2 + X3 = filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) = M + 1X + Y + 0 >= Y = activate#(Y) activate#(n__sieve(X)) = X + 2 >= X = activate#(X) activate#(n__sieve(X)) = X + 2 >= X + 2 = sieve#(activate(X)) sieve#(cons(s(N),Y)) = 1N + Y + 2 >= Y = activate#(Y) activate#(n__nats(X)) = 1X >= X = activate#(X) activate#(n__s(X)) = X >= X = activate#(X) filter#(cons(X,Y),s(N),M) = M + N + 1X + Y >= Y = activate#(Y) activate(n__filter(X1,X2,X3)) = X1 + X2 + X3 + 2 >= X1 + X2 + X3 + 2 = filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) = X + 2 >= X + 2 = sieve(activate(X)) activate(n__nats(X)) = 1X >= 1X = nats(activate(X)) activate(n__s(X)) = X >= X = s(activate(X)) activate(X) = X >= X = X filter(cons(X,Y),0(),M) = M + 1X + Y + 2 >= M + Y + 2 = cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) = M + N + 1X + Y + 2 >= M + N + 1X + Y + 2 = cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) = X1 + X2 + X3 + 2 >= X1 + X2 + X3 + 2 = n__filter(X1,X2,X3) sieve(cons(0(),Y)) = Y + 2 >= Y + 2 = cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) = 1N + Y + 2 >= 1N + Y + 2 = cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) = X + 2 >= X + 2 = n__sieve(X) nats(N) = 1N >= 1N = cons(N,n__nats(n__s(N))) nats(X) = 1X >= 1X = n__nats(X) s(X) = X >= X = n__s(X) problem: DPs: sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) Restore Modifier: DPs: sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Usable Rule Processor: DPs: sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> activate#(X3) activate#(n__filter(X1,X2,X3)) -> activate#(X2) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) Arctic Interpretation Processor: dimension: 1 usable rules: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) interpretation: [n__filter](x0, x1, x2) = x0 + 1x1 + 1x2, [nats](x0) = 1x0 + 2, [0] = 2, [activate](x0) = x0, [s](x0) = x0, [n__nats](x0) = 1x0 + 2, [cons](x0, x1) = 1x0 + x1 + 0, [n__sieve](x0) = x0, [sieve#](x0) = x0, [filter#](x0, x1, x2) = x0, [n__s](x0) = x0, [activate#](x0) = x0, [sieve](x0) = x0, [filter](x0, x1, x2) = x0 + 1x1 + 1x2 orientation: sieve#(cons(0(),Y)) = Y + 3 >= Y = activate#(Y) activate#(n__filter(X1,X2,X3)) = X1 + 1X2 + 1X3 >= X3 = activate#(X3) activate#(n__filter(X1,X2,X3)) = X1 + 1X2 + 1X3 >= X2 = activate#(X2) activate#(n__filter(X1,X2,X3)) = X1 + 1X2 + 1X3 >= X1 = activate#(X1) activate#(n__filter(X1,X2,X3)) = X1 + 1X2 + 1X3 >= X1 = filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) = 1X + Y + 0 >= Y = activate#(Y) activate#(n__sieve(X)) = X >= X = activate#(X) activate#(n__sieve(X)) = X >= X = sieve#(activate(X)) sieve#(cons(s(N),Y)) = 1N + Y + 0 >= Y = activate#(Y) activate#(n__s(X)) = X >= X = activate#(X) filter#(cons(X,Y),s(N),M) = 1X + Y + 0 >= Y = activate#(Y) activate(n__filter(X1,X2,X3)) = X1 + 1X2 + 1X3 >= X1 + 1X2 + 1X3 = filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) = X >= X = sieve(activate(X)) activate(n__nats(X)) = 1X + 2 >= 1X + 2 = nats(activate(X)) activate(n__s(X)) = X >= X = s(activate(X)) activate(X) = X >= X = X filter(cons(X,Y),0(),M) = 1M + 1X + Y + 3 >= 1M + Y + 3 = cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) = 1M + 1N + 1X + Y + 0 >= 1M + 1N + 1X + Y + 0 = cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) = X1 + 1X2 + 1X3 >= X1 + 1X2 + 1X3 = n__filter(X1,X2,X3) sieve(cons(0(),Y)) = Y + 3 >= Y + 3 = cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) = 1N + Y + 0 >= 1N + Y + 0 = cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) = X >= X = n__sieve(X) nats(N) = 1N + 2 >= 1N + 2 = cons(N,n__nats(n__s(N))) nats(X) = 1X + 2 >= 1X + 2 = n__nats(X) s(X) = X >= X = n__s(X) problem: DPs: sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) Restore Modifier: DPs: sieve#(cons(0(),Y)) -> activate#(Y) activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__sieve(X)) -> activate#(X) activate#(n__sieve(X)) -> sieve#(activate(X)) sieve#(cons(s(N),Y)) -> activate#(Y) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Subterm Criterion Processor: simple projection: pi(cons) = 1 pi(filter) = 0 pi(activate) = 0 pi(n__filter) = 0 pi(s) = 0 pi(sieve) = [0,0] pi(n__sieve) = [0,0] pi(nats) = 0 pi(n__s) = 0 pi(n__nats) = 0 pi(filter#) = [0,0] pi(activate#) = [0,0] pi(sieve#) = [0,0,0] problem: DPs: activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Usable Rule Processor: DPs: activate#(n__filter(X1,X2,X3)) -> activate#(X1) activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) -> activate#(Y) activate#(n__s(X)) -> activate#(X) filter#(cons(X,Y),s(N),M) -> activate#(Y) TRS: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) Arctic Interpretation Processor: dimension: 1 usable rules: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) interpretation: [n__filter](x0, x1, x2) = 1x0 + 1, [nats](x0) = x0 + 4, [0] = 3, [activate](x0) = x0 + 0, [s](x0) = x0 + 4, [n__nats](x0) = x0 + 4, [cons](x0, x1) = x1, [n__sieve](x0) = 0, [filter#](x0, x1, x2) = 1x0 + 0, [n__s](x0) = x0 + 4, [activate#](x0) = x0, [sieve](x0) = 0, [filter](x0, x1, x2) = 1x0 + 1 orientation: activate#(n__filter(X1,X2,X3)) = 1X1 + 1 >= X1 = activate#(X1) activate#(n__filter(X1,X2,X3)) = 1X1 + 1 >= 1X1 + 1 = filter#(activate(X1),activate(X2),activate(X3)) filter#(cons(X,Y),0(),M) = 1Y + 0 >= Y = activate#(Y) activate#(n__s(X)) = X + 4 >= X = activate#(X) filter#(cons(X,Y),s(N),M) = 1Y + 0 >= Y = activate#(Y) activate(n__filter(X1,X2,X3)) = 1X1 + 1 >= 1X1 + 1 = filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) = 0 >= 0 = sieve(activate(X)) activate(n__nats(X)) = X + 4 >= X + 4 = nats(activate(X)) activate(n__s(X)) = X + 4 >= X + 4 = s(activate(X)) activate(X) = X + 0 >= X = X filter(cons(X,Y),0(),M) = 1Y + 1 >= 1Y + 1 = cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) = 1Y + 1 >= 1Y + 1 = cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) = 1X1 + 1 >= 1X1 + 1 = n__filter(X1,X2,X3) sieve(cons(0(),Y)) = 0 >= 0 = cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) = 0 >= 0 = cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) = 0 >= 0 = n__sieve(X) nats(N) = N + 4 >= N + 4 = cons(N,n__nats(n__s(N))) nats(X) = X + 4 >= X + 4 = n__nats(X) s(X) = X + 4 >= X + 4 = n__s(X) problem: DPs: activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__s(X)) -> activate#(X) TRS: activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) sieve(X) -> n__sieve(X) nats(N) -> cons(N,n__nats(n__s(N))) nats(X) -> n__nats(X) s(X) -> n__s(X) Restore Modifier: DPs: activate#(n__filter(X1,X2,X3)) -> filter#(activate(X1),activate(X2),activate(X3)) activate#(n__s(X)) -> activate#(X) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X SCC Processor: #sccs: 1 #rules: 1 #arcs: 84/4 DPs: activate#(n__s(X)) -> activate#(X) TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X Size-Change Termination Processor: DPs: TRS: filter(cons(X,Y),0(),M) -> cons(0(),n__filter(activate(Y),M,M)) filter(cons(X,Y),s(N),M) -> cons(X,n__filter(activate(Y),N,M)) sieve(cons(0(),Y)) -> cons(0(),n__sieve(activate(Y))) sieve(cons(s(N),Y)) -> cons(s(N),n__sieve(n__filter(activate(Y),N,N))) nats(N) -> cons(N,n__nats(n__s(N))) zprimes() -> sieve(nats(s(s(0())))) filter(X1,X2,X3) -> n__filter(X1,X2,X3) sieve(X) -> n__sieve(X) nats(X) -> n__nats(X) s(X) -> n__s(X) activate(n__filter(X1,X2,X3)) -> filter(activate(X1),activate(X2),activate(X3)) activate(n__sieve(X)) -> sieve(activate(X)) activate(n__nats(X)) -> nats(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(X) -> X The DP: activate#(n__s(X)) -> activate#(X) has the edges: 0 > 0 Qed