Input TRS: 1: primes() -> sieve(from(s(s(0())))) 2: from(X) -> cons(X,n__from(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(s(s(X)),activate(Z)),n__cons(Y,n__filter(X,sieve(Y)))) 8: sieve(cons(X,Y)) -> cons(X,n__filter(X,sieve(activate(Y)))) 9: from(X) -> n__from(X) 10: filter(X1,X2) -> n__filter(X1,X2) 11: cons(X1,X2) -> n__cons(X1,X2) 12: activate(n__from(X)) -> from(X) 13: activate(n__filter(X1,X2)) -> filter(X1,X2) 14: activate(n__cons(X1,X2)) -> cons(X1,X2) 15: activate(X) -> X Number of strict rules: 15 Direct Order(PosReal,>,Poly) ... failed. Freezing if 1: primes() -> sieve(from(s(s(0())))) 2: from(X) -> cons(X,n__from(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(s(s(X)),activate(Z)),n__cons(Y,n__filter(X,sieve(Y)))) 8: sieve(cons(X,Y)) -> cons(X,n__filter(X,sieve(activate(Y)))) 9: from(X) -> n__from(X) 10: filter(X1,X2) -> n__filter(X1,X2) 11: cons(X1,X2) -> n__cons(X1,X2) 12: activate(n__from(X)) -> from(X) 13: activate(n__filter(X1,X2)) -> filter(X1,X2) 14: activate(n__cons(X1,X2)) -> cons(X1,X2) 15: activate(X) -> X 16: if(false(),_2,_3) ->= if❆1_false(_2,_3) 17: if(divides(_1,_2),_4,_5) ->= if❆1_divides(_1,_2,_4,_5) 18: if(true(),_2,_3) ->= if❆1_true(_2,_3) Number of strict rules: 15 Direct Order(PosReal,>,Poly) ... failed. Dependency Pairs: #1: #from(X) -> #cons(X,n__from(s(X))) #2: #if❆1_false(X,Y) -> #activate(Y) #3: #activate(n__filter(X1,X2)) -> #filter(X1,X2) #4: #activate(n__from(X)) -> #from(X) #5: #activate(n__cons(X1,X2)) -> #cons(X1,X2) #6: #filter(s(s(X)),cons(Y,Z)) -> #activate(Z) #7: #filter(s(s(X)),cons(Y,Z)) -> #sieve(Y) #8: #if❆1_true(X,Y) -> #activate(X) #9: #if(false(),_2,_3) ->? #if❆1_false(_2,_3) #10: #primes() -> #sieve(from(s(s(0())))) #11: #primes() -> #from(s(s(0()))) #12: #sieve(cons(X,Y)) -> #cons(X,n__filter(X,sieve(activate(Y)))) #13: #sieve(cons(X,Y)) -> #sieve(activate(Y)) #14: #sieve(cons(X,Y)) -> #activate(Y) #15: #tail(cons(X,Y)) -> #activate(Y) #16: #if(true(),_2,_3) ->? #if❆1_true(_2,_3) Number of SCCs: 1, DPs: 5, edges: 8 SCC { #3 #6 #7 #13 #14 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: 0 activate(x1) weight: (/ 1 4) + x1 #filter(x1,x2) weight: x2 n__from(x1) weight: (/ 1 4) + x1 #activate(x1) weight: 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 tail(x1) weight: 0 0() weight: 0 if(x1,x2,x3) weight: 0 from(x1) weight: (/ 1 2) + x1 n__cons(x1,x2) weight: (/ 1 4) + x1 + 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: (/ 1 4) if❆1_true(x1,x2) weight: 0 #from(x1) weight: 0 head(x1) weight: 0 cons(x1,x2) weight: (/ 1 4) + x1 + 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: x1 divides(x1,x2) weight: 0 Usable rules: { 2 7 9..15 } Removed DPs: #3 #6 #7 #14 Number of SCCs: 1, DPs: 1, edges: 1 SCC { #13 } 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... found. #sieve(cons(X,n__from(X_{1}))) -#13-> #sieve(activate(n__from(X_{1}))) --->* #sieve(cons(X_{1},n__from(s(X_{1})))) Looping with: [ X := X_{1}; X_{1} := s(X_{1}); ] NO