Input TRS: 1: le(s(x),0()) -> false() 2: le(0(),y) -> true() 3: le(s(x),s(y)) -> le(x,y) 4: double(0()) -> 0() 5: double(s(x)) -> s(s(double(x))) 6: log(0()) -> logError() 7: log(s(x)) -> loop(s(x),s(0()),0()) 8: loop(x,s(y),z) -> if(le(x,s(y)),x,s(y),z) 9: if(true(),x,y,z) -> z 10: if(false(),x,y,z) -> loop(x,double(y),s(z)) 11: maplog(xs) -> mapIter(xs,nil()) 12: mapIter(xs,ys) -> ifmap(isempty(xs),xs,ys) 13: ifmap(true(),xs,ys) -> ys 14: ifmap(false(),xs,ys) -> mapIter(droplast(xs),cons(log(last(xs)),ys)) 15: isempty(nil()) -> true() 16: isempty(cons(x,xs)) -> false() 17: last(nil()) -> error() 18: last(cons(x,nil())) -> x 19: last(cons(x,cons(y,xs))) -> last(cons(y,xs)) 20: droplast(nil()) -> nil() 21: droplast(cons(x,nil())) -> nil() 22: droplast(cons(x,cons(y,xs))) -> cons(x,droplast(cons(y,xs))) 23: a() -> b() 24: a() -> c() Number of strict rules: 24 Direct Order(PosReal,>,Poly) ... failed. Freezing droplast last 1: le(s(x),0()) -> false() 2: le(0(),y) -> true() 3: le(s(x),s(y)) -> le(x,y) 4: double(0()) -> 0() 5: double(s(x)) -> s(s(double(x))) 6: log(0()) -> logError() 7: log(s(x)) -> loop(s(x),s(0()),0()) 8: loop(x,s(y),z) -> if(le(x,s(y)),x,s(y),z) 9: if(true(),x,y,z) -> z 10: if(false(),x,y,z) -> loop(x,double(y),s(z)) 11: maplog(xs) -> mapIter(xs,nil()) 12: mapIter(xs,ys) -> ifmap(isempty(xs),xs,ys) 13: ifmap(true(),xs,ys) -> ys 14: ifmap(false(),xs,ys) -> mapIter(droplast(xs),cons(log(last(xs)),ys)) 15: isempty(nil()) -> true() 16: isempty(cons(x,xs)) -> false() 17: last❆1_nil() -> error() 18: last❆1_cons(x,nil()) -> x 19: last❆1_cons(x,cons(y,xs)) -> last❆1_cons(y,xs) 20: droplast❆1_nil() -> nil() 21: droplast❆1_cons(x,nil()) -> nil() 22: droplast❆1_cons(x,cons(y,xs)) -> cons(x,droplast❆1_cons(y,xs)) 23: a() -> b() 24: a() -> c() 25: last(cons(_1,_2)) ->= last❆1_cons(_1,_2) 26: last(nil()) ->= last❆1_nil() 27: droplast(cons(_1,_2)) ->= droplast❆1_cons(_1,_2) 28: droplast(nil()) ->= droplast❆1_nil() Number of strict rules: 24 Direct Order(PosReal,>,Poly) ... failed. Dependency Pairs: #1: #maplog(xs) -> #mapIter(xs,nil()) #2: #mapIter(xs,ys) -> #ifmap(isempty(xs),xs,ys) #3: #mapIter(xs,ys) -> #isempty(xs) #4: #ifmap(false(),xs,ys) -> #mapIter(droplast(xs),cons(log(last(xs)),ys)) #5: #ifmap(false(),xs,ys) -> #droplast(xs) #6: #ifmap(false(),xs,ys) -> #log(last(xs)) #7: #ifmap(false(),xs,ys) -> #last(xs) #8: #last(cons(_1,_2)) ->? #last❆1_cons(_1,_2) #9: #log(s(x)) -> #loop(s(x),s(0()),0()) #10: #if(false(),x,y,z) -> #loop(x,double(y),s(z)) #11: #if(false(),x,y,z) -> #double(y) #12: #double(s(x)) -> #double(x) #13: #droplast(nil()) ->? #droplast❆1_nil() #14: #droplast❆1_cons(x,cons(y,xs)) -> #droplast❆1_cons(y,xs) #15: #droplast(cons(_1,_2)) ->? #droplast❆1_cons(_1,_2) #16: #last❆1_cons(x,cons(y,xs)) -> #last❆1_cons(y,xs) #17: #last(nil()) ->? #last❆1_nil() #18: #le(s(x),s(y)) -> #le(x,y) #19: #loop(x,s(y),z) -> #if(le(x,s(y)),x,s(y),z) #20: #loop(x,s(y),z) -> #le(x,s(y)) Number of SCCs: 6, DPs: 8, edges: 8 SCC { #12 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #droplast(x1) weight: 0 a() weight: 0 droplast❆1_cons(x1,x2) weight: 0 isempty(x1) weight: 0 le(x1,x2) weight: 0 last❆1_nil() weight: 0 mapIter(x1,x2) weight: 0 logError() weight: 0 s(x1) weight: (/ 1 2) + x1 #le(x1,x2) weight: 0 ifmap(x1,x2,x3) weight: 0 b() weight: 0 #ifmap(x1,x2,x3) weight: 0 droplast(x1) weight: 0 #last❆1_nil() weight: 0 maplog(x1) weight: 0 #isempty(x1) weight: 0 #last❆1_cons(x1,x2) weight: 0 false() weight: 0 droplast❆1_nil() weight: 0 #log(x1) weight: 0 last❆1_cons(x1,x2) weight: 0 c() weight: 0 true() weight: 0 #last(x1) weight: 0 error() weight: 0 log(x1) weight: 0 #loop(x1,x2,x3) weight: 0 0() weight: 0 if(x1,x2,x3,x4) weight: 0 #double(x1) weight: x1 double(x1) weight: 0 last(x1) weight: 0 nil() weight: 0 #droplast❆1_cons(x1,x2) weight: 0 #mapIter(x1,x2) weight: 0 loop(x1,x2,x3) weight: 0 cons(x1,x2) weight: 0 #if(x1,x2,x3,x4) weight: 0 #a() weight: 0 #droplast❆1_nil() weight: 0 #maplog(x1) weight: 0 Usable rules: { } Removed DPs: #12 Number of SCCs: 5, DPs: 7, edges: 7 SCC { #18 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #droplast(x1) weight: 0 a() weight: 0 droplast❆1_cons(x1,x2) weight: 0 isempty(x1) weight: 0 le(x1,x2) weight: 0 last❆1_nil() weight: 0 mapIter(x1,x2) weight: 0 logError() weight: 0 s(x1) weight: (/ 1 2) + x1 #le(x1,x2) weight: x2 ifmap(x1,x2,x3) weight: 0 b() weight: 0 #ifmap(x1,x2,x3) weight: 0 droplast(x1) weight: 0 #last❆1_nil() weight: 0 maplog(x1) weight: 0 #isempty(x1) weight: 0 #last❆1_cons(x1,x2) weight: 0 false() weight: 0 droplast❆1_nil() weight: 0 #log(x1) weight: 0 last❆1_cons(x1,x2) weight: 0 c() weight: 0 true() weight: 0 #last(x1) weight: 0 error() weight: 0 log(x1) weight: 0 #loop(x1,x2,x3) weight: 0 0() weight: 0 if(x1,x2,x3,x4) weight: 0 #double(x1) weight: 0 double(x1) weight: 0 last(x1) weight: 0 nil() weight: 0 #droplast❆1_cons(x1,x2) weight: 0 #mapIter(x1,x2) weight: 0 loop(x1,x2,x3) weight: 0 cons(x1,x2) weight: 0 #if(x1,x2,x3,x4) weight: 0 #a() weight: 0 #droplast❆1_nil() weight: 0 #maplog(x1) weight: 0 Usable rules: { } Removed DPs: #18 Number of SCCs: 4, DPs: 6, edges: 6 SCC { #16 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #droplast(x1) weight: 0 a() weight: 0 droplast❆1_cons(x1,x2) weight: 0 isempty(x1) weight: 0 le(x1,x2) weight: 0 last❆1_nil() weight: 0 mapIter(x1,x2) weight: 0 logError() weight: 0 s(x1) weight: (/ 1 2) #le(x1,x2) weight: 0 ifmap(x1,x2,x3) weight: 0 b() weight: 0 #ifmap(x1,x2,x3) weight: 0 droplast(x1) weight: 0 #last❆1_nil() weight: 0 maplog(x1) weight: 0 #isempty(x1) weight: 0 #last❆1_cons(x1,x2) weight: x2 false() weight: 0 droplast❆1_nil() weight: 0 #log(x1) weight: 0 last❆1_cons(x1,x2) weight: 0 c() weight: 0 true() weight: 0 #last(x1) weight: 0 error() weight: 0 log(x1) weight: 0 #loop(x1,x2,x3) weight: 0 0() weight: 0 if(x1,x2,x3,x4) weight: 0 #double(x1) weight: 0 double(x1) weight: 0 last(x1) weight: 0 nil() weight: 0 #droplast❆1_cons(x1,x2) weight: 0 #mapIter(x1,x2) weight: 0 loop(x1,x2,x3) weight: 0 cons(x1,x2) weight: (/ 1 2) + x2 #if(x1,x2,x3,x4) weight: 0 #a() weight: 0 #droplast❆1_nil() weight: 0 #maplog(x1) weight: 0 Usable rules: { } Removed DPs: #16 Number of SCCs: 3, DPs: 5, edges: 5 SCC { #14 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #droplast(x1) weight: 0 a() weight: 0 droplast❆1_cons(x1,x2) weight: 0 isempty(x1) weight: 0 le(x1,x2) weight: 0 last❆1_nil() weight: 0 mapIter(x1,x2) weight: 0 logError() weight: 0 s(x1) weight: (/ 1 2) #le(x1,x2) weight: 0 ifmap(x1,x2,x3) weight: 0 b() weight: 0 #ifmap(x1,x2,x3) weight: 0 droplast(x1) weight: 0 #last❆1_nil() weight: 0 maplog(x1) weight: 0 #isempty(x1) weight: 0 #last❆1_cons(x1,x2) weight: 0 false() weight: 0 droplast❆1_nil() weight: 0 #log(x1) weight: 0 last❆1_cons(x1,x2) weight: 0 c() weight: 0 true() weight: 0 #last(x1) weight: 0 error() weight: 0 log(x1) weight: 0 #loop(x1,x2,x3) weight: 0 0() weight: 0 if(x1,x2,x3,x4) weight: 0 #double(x1) weight: 0 double(x1) weight: 0 last(x1) weight: 0 nil() weight: 0 #droplast❆1_cons(x1,x2) weight: x2 #mapIter(x1,x2) weight: 0 loop(x1,x2,x3) weight: 0 cons(x1,x2) weight: (/ 1 2) + x2 #if(x1,x2,x3,x4) weight: 0 #a() weight: 0 #droplast❆1_nil() weight: 0 #maplog(x1) weight: 0 Usable rules: { } Removed DPs: #14 Number of SCCs: 2, DPs: 4, edges: 4 SCC { #2 #4 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... succeeded. #droplast(x1) weight: 0 a() weight: 0 droplast❆1_cons(x1,x2) weight: max{0, (/ 1 64) + x2} isempty(x1) weight: max{0, x1} le(x1,x2) weight: max{0, (- (/ 17 64)) + x1, (/ 1 64) + x2} last❆1_nil() weight: (/ 1 64) mapIter(x1,x2) weight: 0 logError() weight: (/ 5 32) s(x1) weight: max{0, (/ 1 4) + x1} #le(x1,x2) weight: 0 ifmap(x1,x2,x3) weight: 0 b() weight: 0 #ifmap(x1,x2,x3) weight: max{0, (/ 1 64) + x1, (- (/ 1 64)) + x2} droplast(x1) weight: max{0, (- (/ 3 64)) + x1} #last❆1_nil() weight: 0 maplog(x1) weight: 0 #isempty(x1) weight: 0 #last❆1_cons(x1,x2) weight: 0 false() weight: (/ 3 64) droplast❆1_nil() weight: 0 #log(x1) weight: 0 last❆1_cons(x1,x2) weight: max{0, (/ 1 64) + x1, (- (/ 1 64)) + x2} c() weight: 0 true() weight: 0 #last(x1) weight: 0 error() weight: (/ 1 32) log(x1) weight: max{0, (/ 1 8) + x1} #loop(x1,x2,x3) weight: 0 0() weight: (/ 1 64) if(x1,x2,x3,x4) weight: max{0, (/ 5 32) + x1} #double(x1) weight: 0 double(x1) weight: (max (/ 5 64) 0) last(x1) weight: max{0, (- (/ 3 32)) + x1} nil() weight: 0 #droplast❆1_cons(x1,x2) weight: 0 #mapIter(x1,x2) weight: max{0, (/ 1 64) + x1} loop(x1,x2,x3) weight: max{0, (/ 1 64) + x1, (/ 9 64) + x2, (- (/ 1 32)) + x3} cons(x1,x2) weight: max{0, (/ 1 16) + x2} #if(x1,x2,x3,x4) weight: 0 #a() weight: 0 #droplast❆1_nil() weight: 0 #maplog(x1) weight: 0 Usable rules: { 15 16 20..22 27 28 } Removed DPs: #4 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #10 #19 } 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