Input TRS: 1: primes() -> sieve(from(s(s(0())))) 2: from(X) -> cons(X,n__from(n__s(X))) 3: head(cons(X,Y)) -> X 4: tail(cons(X,Y)) -> activate(Y) 5: if(true(),X,Y) -> activate(X) 6: if(false(),X,Y) -> activate(Y) 7: filter(s(s(X)),cons(Y,Z)) -> if(divides(s(s(X)),Y),n__filter(n__s(n__s(X)),activate(Z)),n__cons(Y,n__filter(X,n__sieve(Y)))) 8: sieve(cons(X,Y)) -> cons(X,n__filter(X,n__sieve(activate(Y)))) 9: from(X) -> n__from(X) 10: s(X) -> n__s(X) 11: filter(X1,X2) -> n__filter(X1,X2) 12: cons(X1,X2) -> n__cons(X1,X2) 13: sieve(X) -> n__sieve(X) 14: activate(n__from(X)) -> from(activate(X)) 15: activate(n__s(X)) -> s(activate(X)) 16: activate(n__filter(X1,X2)) -> filter(activate(X1),activate(X2)) 17: activate(n__cons(X1,X2)) -> cons(activate(X1),X2) 18: activate(n__sieve(X)) -> sieve(activate(X)) 19: activate(X) -> X Number of strict rules: 19 Direct Order(PosReal,>,Poly) ... failed. Freezing if 1: primes() -> sieve(from(s(s(0())))) 2: from(X) -> cons(X,n__from(n__s(X))) 3: head(cons(X,Y)) -> X 4: tail(cons(X,Y)) -> activate(Y) 5: if❆1_true(X,Y) -> activate(X) 6: if❆1_false(X,Y) -> activate(Y) 7: filter(s(s(X)),cons(Y,Z)) -> if❆1_divides(s(s(X)),Y,n__filter(n__s(n__s(X)),activate(Z)),n__cons(Y,n__filter(X,n__sieve(Y)))) 8: sieve(cons(X,Y)) -> cons(X,n__filter(X,n__sieve(activate(Y)))) 9: from(X) -> n__from(X) 10: s(X) -> n__s(X) 11: filter(X1,X2) -> n__filter(X1,X2) 12: cons(X1,X2) -> n__cons(X1,X2) 13: sieve(X) -> n__sieve(X) 14: activate(n__from(X)) -> from(activate(X)) 15: activate(n__s(X)) -> s(activate(X)) 16: activate(n__filter(X1,X2)) -> filter(activate(X1),activate(X2)) 17: activate(n__cons(X1,X2)) -> cons(activate(X1),X2) 18: activate(n__sieve(X)) -> sieve(activate(X)) 19: activate(X) -> X 20: if(false(),_2,_3) ->= if❆1_false(_2,_3) 21: if(divides(_1,_2),_4,_5) ->= if❆1_divides(_1,_2,_4,_5) 22: if(true(),_2,_3) ->= if❆1_true(_2,_3) Number of strict rules: 19 Direct Order(PosReal,>,Poly) ... failed. Dependency Pairs: #1: #from(X) -> #cons(X,n__from(n__s(X))) #2: #if❆1_false(X,Y) -> #activate(Y) #3: #activate(n__from(X)) -> #from(activate(X)) #4: #activate(n__from(X)) -> #activate(X) #5: #if(false(),_2,_3) ->? #if❆1_false(_2,_3) #6: #filter(s(s(X)),cons(Y,Z)) -> #activate(Z) #7: #if❆1_true(X,Y) -> #activate(X) #8: #if(true(),_2,_3) ->? #if❆1_true(_2,_3) #9: #activate(n__cons(X1,X2)) -> #cons(activate(X1),X2) #10: #activate(n__cons(X1,X2)) -> #activate(X1) #11: #activate(n__filter(X1,X2)) -> #filter(activate(X1),activate(X2)) #12: #activate(n__filter(X1,X2)) -> #activate(X1) #13: #activate(n__filter(X1,X2)) -> #activate(X2) #14: #primes() -> #sieve(from(s(s(0())))) #15: #primes() -> #from(s(s(0()))) #16: #primes() -> #s(s(0())) #17: #primes() -> #s(0()) #18: #sieve(cons(X,Y)) -> #cons(X,n__filter(X,n__sieve(activate(Y)))) #19: #sieve(cons(X,Y)) -> #activate(Y) #20: #activate(n__s(X)) -> #s(activate(X)) #21: #activate(n__s(X)) -> #activate(X) #22: #tail(cons(X,Y)) -> #activate(Y) #23: #activate(n__sieve(X)) -> #sieve(activate(X)) #24: #activate(n__sieve(X)) -> #activate(X) Number of SCCs: 1, DPs: 10, edges: 66 SCC { #4 #6 #10..13 #19 #21 #23 #24 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: x1 activate(x1) weight: x1 #filter(x1,x2) weight: max{0, (/ 1 8) + x2} n__from(x1) weight: (/ 3 8) + x1 #activate(x1) weight: (/ 1 8) + x1 false() weight: 0 #head(x1) weight: 0 if❆1_false(x1,x2) weight: 0 #if❆1_false(x1,x2) weight: 0 #primes() weight: 0 true() weight: 0 n__s(x1) weight: x1 tail(x1) weight: 0 0() weight: 0 if(x1,x2,x3) weight: 0 from(x1) weight: (/ 3 8) + x1 #s(x1) weight: 0 n__cons(x1,x2) weight: max{x2, (/ 3 8) + x1} n__filter(x1,x2) weight: max{x2, (/ 1 8) + x1} #tail(x1) weight: 0 if❆1_divides(x1,x2,x3,x4) weight: max{0, x4} sieve(x1) weight: (/ 1 4) + x1 if❆1_true(x1,x2) weight: 0 n__sieve(x1) weight: (/ 1 4) + x1 #from(x1) weight: 0 head(x1) weight: 0 cons(x1,x2) weight: max{x2, (/ 3 8) + x1} #if(x1,x2,x3) weight: 0 #if❆1_true(x1,x2) weight: 0 filter(x1,x2) weight: max{x2, (/ 1 8) + x1} primes() weight: 0 #sieve(x1) weight: (/ 1 4) + x1 divides(x1,x2) weight: 0 Usable rules: { 2 7..19 } Removed DPs: #4 #10 #12 #19 #23 #24 Number of SCCs: 1, DPs: 4, edges: 10 SCC { #6 #11 #13 #21 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: (/ 1 4) + x1 activate(x1) weight: (/ 1 2) + x1 #filter(x1,x2) weight: x2 n__from(x1) weight: 0 #activate(x1) weight: (/ 1 4) + x1 false() weight: 0 #head(x1) weight: 0 if❆1_false(x1,x2) weight: 0 #if❆1_false(x1,x2) weight: 0 #primes() weight: 0 true() weight: 0 n__s(x1) weight: (/ 1 4) + x1 tail(x1) weight: 0 0() weight: 0 if(x1,x2,x3) weight: 0 from(x1) weight: (/ 1 2) #s(x1) weight: 0 n__cons(x1,x2) weight: x2 n__filter(x1,x2) weight: (/ 1 4) + x2 #tail(x1) weight: 0 if❆1_divides(x1,x2,x3,x4) weight: 0 sieve(x1) weight: (/ 3 4) if❆1_true(x1,x2) weight: 0 n__sieve(x1) weight: (/ 1 4) #from(x1) weight: 0 head(x1) weight: 0 cons(x1,x2) weight: (/ 1 4) + x2 #if(x1,x2,x3) weight: 0 #if❆1_true(x1,x2) weight: 0 filter(x1,x2) weight: (/ 1 4) + x2 primes() weight: 0 #sieve(x1) weight: 0 divides(x1,x2) weight: 0 Usable rules: { 2 7..19 } Removed DPs: #13 #21 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #6 #11 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... Order(PosReal,>,Sum-Sum; PosReal,≥,Sum-Sum)... Order(PosReal,>,Sum-Sum; NegReal,≥,Sum)... Order(PosReal,>,MaxSum-Sum; NegReal,≥,Sum)... failed. Removing edges: failed. Finding a loop... failed. MAYBE