Input TRS: 1: is_empty(nil()) -> true() 2: is_empty(cons(x,l)) -> false() 3: hd(cons(x,l)) -> x 4: tl(cons(x,l)) -> l 5: append(l1,l2) -> ifappend(l1,l2,is_empty(l1)) 6: ifappend(l1,l2,true()) -> l2 7: ifappend(l1,l2,false()) -> cons(hd(l1),append(tl(l1),l2)) Number of strict rules: 7 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #ifappend(l1,l2,false()) -> #hd(l1) #2: #ifappend(l1,l2,false()) -> #append(tl(l1),l2) #3: #ifappend(l1,l2,false()) -> #tl(l1) #4: #append(l1,l2) -> #ifappend(l1,l2,is_empty(l1)) #5: #append(l1,l2) -> #is_empty(l1) Number of SCCs: 1, DPs: 2, edges: 2 SCC { #2 #4 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... succeeded. hd(x1) weight: 0 #append(x1,x2) weight: max{0, (/ 1 4) + x1} #is_empty(x1) weight: 0 ifappend(x1,x2,x3) weight: 0 false() weight: (/ 1 4) true() weight: (/ 1 8) #tl(x1) weight: 0 append(x1,x2) weight: 0 tl(x1) weight: max{0, (- (/ 1 8)) + x1} nil() weight: (/ 1 8) is_empty(x1) weight: max{0, x1} #hd(x1) weight: 0 cons(x1,x2) weight: max{0, (/ 1 8) + x1, (/ 1 4) + x2} #ifappend(x1,x2,x3) weight: max{0, (/ 1 4) + x1, (/ 1 4) + x3} Usable rules: { 1 2 4 } Removed DPs: #2 Number of SCCs: 0, DPs: 0, edges: 0 YES