We consider the following Problem: Strict Trs: { primes() -> sieve(from(s(s(0())))) , from(X) -> cons(X, n__from(s(X))) , head(cons(X, Y)) -> X , tail(cons(X, Y)) -> activate(Y) , if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , filter(s(s(X)), cons(Y, Z)) -> if(divides(s(s(X)), Y), n__filter(s(s(X)), activate(Z)), n__cons(Y, n__filter(X, sieve(Y)))) , sieve(cons(X, Y)) -> cons(X, n__filter(X, sieve(activate(Y)))) , from(X) -> n__from(X) , filter(X1, X2) -> n__filter(X1, X2) , cons(X1, X2) -> n__cons(X1, X2) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2) , activate(n__cons(X1, X2)) -> cons(X1, X2) , activate(X) -> X} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: Arguments of following rules are not normal-forms: { head(cons(X, Y)) -> X , tail(cons(X, Y)) -> activate(Y) , filter(s(s(X)), cons(Y, Z)) -> if(divides(s(s(X)), Y), n__filter(s(s(X)), activate(Z)), n__cons(Y, n__filter(X, sieve(Y)))) , sieve(cons(X, Y)) -> cons(X, n__filter(X, sieve(activate(Y))))} All above mentioned rules can be savely removed. We consider the following Problem: Strict Trs: { primes() -> sieve(from(s(s(0())))) , from(X) -> cons(X, n__from(s(X))) , if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , from(X) -> n__from(X) , filter(X1, X2) -> n__filter(X1, X2) , cons(X1, X2) -> n__cons(X1, X2) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2) , activate(n__cons(X1, X2)) -> cons(X1, X2) , activate(X) -> X} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: { primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [2] [2] sieve(x1) = [1 0] x1 + [1] [0 1] [1] from(x1) = [1 1] x1 + [0] [0 0] [0] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1] [0 0] [1 1] [1] n__from(x1) = [0 0] x1 + [0] [1 1] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 1] x1 + [1] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 1] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { from(X) -> cons(X, n__from(s(X))) , if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , from(X) -> n__from(X) , filter(X1, X2) -> n__filter(X1, X2) , cons(X1, X2) -> n__cons(X1, X2) , activate(n__cons(X1, X2)) -> cons(X1, X2) , activate(X) -> X} Weak Trs: { primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {filter(X1, X2) -> n__filter(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [1] [2] sieve(x1) = [1 0] x1 + [1] [0 1] [1] from(x1) = [1 1] x1 + [0] [0 0] [0] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] n__from(x1) = [0 1] x1 + [0] [1 0] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 1] x1 + [1] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 1] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { from(X) -> cons(X, n__from(s(X))) , if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , activate(n__cons(X1, X2)) -> cons(X1, X2) , activate(X) -> X} Weak Trs: { filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {from(X) -> cons(X, n__from(s(X)))} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [3] [2] sieve(x1) = [1 0] x1 + [1] [0 0] [1] from(x1) = [1 1] x1 + [2] [0 0] [1] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [1 1] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] n__from(x1) = [0 1] x1 + [0] [1 0] [2] head(x1) = [1 0] x1 + [0] [0 1] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 1] x1 + [1] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 1] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [1 0] x1 + [0 0] x2 + [0] [0 1] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , activate(n__cons(X1, X2)) -> cons(X1, X2) , activate(X) -> X} Weak Trs: { from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {cons(X1, X2) -> n__cons(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [3] [2] sieve(x1) = [1 0] x1 + [1] [0 0] [1] from(x1) = [1 0] x1 + [2] [1 0] [2] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [1] [1 0] [0 0] [1] n__from(x1) = [1 0] x1 + [2] [0 0] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [1] [1 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , from(X) -> n__from(X) , activate(n__cons(X1, X2)) -> cons(X1, X2) , activate(X) -> X} Weak Trs: { cons(X1, X2) -> n__cons(X1, X2) , from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {from(X) -> n__from(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [3] [2] sieve(x1) = [1 0] x1 + [1] [0 0] [1] from(x1) = [1 0] x1 + [2] [1 0] [2] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [1] [1 0] [0 0] [1] n__from(x1) = [1 0] x1 + [1] [0 0] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [1] [1 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , activate(n__cons(X1, X2)) -> cons(X1, X2) , activate(X) -> X} Weak Trs: { from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {activate(n__cons(X1, X2)) -> cons(X1, X2)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [2] [2] sieve(x1) = [1 0] x1 + [1] [0 0] [1] from(x1) = [0 0] x1 + [0] [0 0] [1] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] n__from(x1) = [0 0] x1 + [0] [0 0] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [1] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1] [0 0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { if(true(), X, Y) -> activate(X) , if(false(), X, Y) -> activate(Y) , activate(X) -> X} Weak Trs: { activate(n__cons(X1, X2)) -> cons(X1, X2) , from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {if(true(), X, Y) -> activate(X)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [2] [2] sieve(x1) = [1 0] x1 + [1] [1 0] [1] from(x1) = [0 0] x1 + [0] [0 0] [1] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [0 0] x1 + [1 0] x2 + [0] [0 0] [0 0] [1] n__from(x1) = [0 0] x1 + [0] [0 0] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [0] [1 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [0 0] x3 + [1] [0 0] [1 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [0 0] x1 + [1 0] x2 + [0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: { if(false(), X, Y) -> activate(Y) , activate(X) -> X} Weak Trs: { if(true(), X, Y) -> activate(X) , activate(n__cons(X1, X2)) -> cons(X1, X2) , from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {if(false(), X, Y) -> activate(Y)} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [2] [2] sieve(x1) = [1 0] x1 + [1] [0 0] [1] from(x1) = [0 0] x1 + [0] [0 0] [1] s(x1) = [0 0] x1 + [0] [0 0] [0] 0() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [1] n__from(x1) = [0 0] x1 + [0] [0 0] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [0] [0 0] [1] if(x1, x2, x3) = [0 0] x1 + [1 0] x2 + [1 0] x3 + [1] [0 0] [0 0] [0 0] [1] true() = [0] [0] false() = [0] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Strict Trs: {activate(X) -> X} Weak Trs: { if(false(), X, Y) -> activate(Y) , if(true(), X, Y) -> activate(X) , activate(n__cons(X1, X2)) -> cons(X1, X2) , from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(?,O(n^1)) Proof: The weightgap principle applies, where following rules are oriented strictly: TRS Component: {activate(X) -> X} Interpretation of nonconstant growth: ------------------------------------- The following argument positions are usable: Uargs(sieve) = {1}, Uargs(from) = {}, Uargs(s) = {}, Uargs(cons) = {}, Uargs(n__from) = {}, Uargs(head) = {}, Uargs(tail) = {}, Uargs(activate) = {}, Uargs(if) = {}, Uargs(filter) = {}, Uargs(divides) = {}, Uargs(n__filter) = {}, Uargs(n__cons) = {} We have the following EDA-non-satisfying and IDA(1)-non-satisfying matrix interpretation: Interpretation Functions: primes() = [3] [2] sieve(x1) = [1 0] x1 + [1] [0 0] [1] from(x1) = [0 0] x1 + [2] [0 0] [1] s(x1) = [1 0] x1 + [0] [0 1] [0] 0() = [0] [0] cons(x1, x2) = [0 0] x1 + [0 0] x2 + [1] [0 0] [0 0] [1] n__from(x1) = [0 0] x1 + [2] [0 0] [0] head(x1) = [0 0] x1 + [0] [0 0] [0] tail(x1) = [0 0] x1 + [0] [0 0] [0] activate(x1) = [1 0] x1 + [1] [0 1] [1] if(x1, x2, x3) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [0] [0 0] [0 1] [0 1] [1] true() = [2] [0] false() = [1] [0] filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] divides(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__filter(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] n__cons(x1, x2) = [0 0] x1 + [0 0] x2 + [0] [0 0] [0 0] [0] The strictly oriented rules are moved into the weak component. We consider the following Problem: Weak Trs: { activate(X) -> X , if(false(), X, Y) -> activate(Y) , if(true(), X, Y) -> activate(X) , activate(n__cons(X1, X2)) -> cons(X1, X2) , from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(O(1),O(1)) Proof: We consider the following Problem: Weak Trs: { activate(X) -> X , if(false(), X, Y) -> activate(Y) , if(true(), X, Y) -> activate(X) , activate(n__cons(X1, X2)) -> cons(X1, X2) , from(X) -> n__from(X) , cons(X1, X2) -> n__cons(X1, X2) , from(X) -> cons(X, n__from(s(X))) , filter(X1, X2) -> n__filter(X1, X2) , primes() -> sieve(from(s(s(0())))) , activate(n__from(X)) -> from(X) , activate(n__filter(X1, X2)) -> filter(X1, X2)} StartTerms: basic terms Strategy: innermost Certificate: YES(O(1),O(1)) Proof: Empty rules are trivially bounded Hurray, we answered YES(?,O(n^1))