Input TRS: 1: isList(nil()) -> tt() 2: isList(Cons(x,xs)) -> isList(xs) 3: downfrom(0()) -> nil() 4: downfrom(s(x)) -> Cons(s(x),downfrom(x)) 5: f(x) -> cond(isList(downfrom(x)),s(x)) 6: cond(tt(),x) -> f(x) Number of strict rules: 6 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #isList(Cons(x,xs)) -> #isList(xs) #2: #cond(tt(),x) -> #f(x) #3: #f(x) -> #cond(isList(downfrom(x)),s(x)) #4: #f(x) -> #isList(downfrom(x)) #5: #f(x) -> #downfrom(x) #6: #downfrom(s(x)) -> #downfrom(x) Number of SCCs: 3, DPs: 4, edges: 4 SCC { #6 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) + x1 f(x1) weight: 0 isList(x1) weight: 0 #cond(x1,x2) weight: 0 0() weight: 0 nil() weight: 0 #f(x1) weight: 0 #isList(x1) weight: 0 #downfrom(x1) weight: x1 tt() weight: 0 downfrom(x1) weight: 0 Cons(x1,x2) weight: 0 cond(x1,x2) weight: 0 Usable rules: { } Removed DPs: #6 Number of SCCs: 2, DPs: 3, edges: 3 SCC { #1 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) f(x1) weight: 0 isList(x1) weight: 0 #cond(x1,x2) weight: 0 0() weight: 0 nil() weight: 0 #f(x1) weight: 0 #isList(x1) weight: x1 #downfrom(x1) weight: 0 tt() weight: 0 downfrom(x1) weight: 0 Cons(x1,x2) weight: (/ 1 2) + x2 cond(x1,x2) weight: 0 Usable rules: { } Removed DPs: #1 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #2 #3 } 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