Input TRS: 1: app(app(app(if(),true()),x),y) -> x 2: app(app(app(if(),true()),x),y) -> y 3: app(app(takeWhile(),p),nil()) -> nil() 4: app(app(takeWhile(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(takeWhile(),p),xs))),nil()) 5: app(app(dropWhile(),p),nil()) -> nil() 6: app(app(dropWhile(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(dropWhile(),p),xs)),app(app(cons(),x),xs)) Number of strict rules: 6 Direct Order(PosReal,>,Poly) ... failed. Freezing app 1: app❆3_if(true(),x,y) -> x 2: app❆3_if(true(),x,y) -> y 3: app❆2_takeWhile(p,nil()) -> nil() 4: app❆2_takeWhile(p,app❆2_cons(x,xs)) -> app❆3_if(app(p,x),app❆2_cons(x,app❆2_takeWhile(p,xs)),nil()) 5: app❆2_dropWhile(p,nil()) -> nil() 6: app❆2_dropWhile(p,app❆2_cons(x,xs)) -> app❆3_if(app(p,x),app❆2_dropWhile(p,xs),app❆2_cons(x,xs)) 7: app(if(),_1) ->= app❆1_if(_1) 8: app(app❆1_if(_1),_2) ->= app❆2_if(_1,_2) 9: app(app❆2_if(_1,_2),_3) ->= app❆3_if(_1,_2,_3) 10: app(cons(),_1) ->= app❆1_cons(_1) 11: app(app❆1_cons(_1),_2) ->= app❆2_cons(_1,_2) 12: app(dropWhile(),_1) ->= app❆1_dropWhile(_1) 13: app(app❆1_dropWhile(_1),_2) ->= app❆2_dropWhile(_1,_2) 14: app(takeWhile(),_1) ->= app❆1_takeWhile(_1) 15: app(app❆1_takeWhile(_1),_2) ->= app❆2_takeWhile(_1,_2) Number of strict rules: 6 Direct Order(PosReal,>,Poly) ... failed. Dependency Pairs: #1: #app❆2_dropWhile(p,app❆2_cons(x,xs)) -> #app❆3_if(app(p,x),app❆2_dropWhile(p,xs),app❆2_cons(x,xs)) #2: #app❆2_dropWhile(p,app❆2_cons(x,xs)) -> #app(p,x) #3: #app❆2_dropWhile(p,app❆2_cons(x,xs)) -> #app❆2_dropWhile(p,xs) #4: #app(app❆1_dropWhile(_1),_2) ->? #app❆2_dropWhile(_1,_2) #5: #app(app❆2_if(_1,_2),_3) ->? #app❆3_if(_1,_2,_3) #6: #app(app❆1_takeWhile(_1),_2) ->? #app❆2_takeWhile(_1,_2) #7: #app❆2_takeWhile(p,app❆2_cons(x,xs)) -> #app❆3_if(app(p,x),app❆2_cons(x,app❆2_takeWhile(p,xs)),nil()) #8: #app❆2_takeWhile(p,app❆2_cons(x,xs)) -> #app(p,x) #9: #app❆2_takeWhile(p,app❆2_cons(x,xs)) -> #app❆2_takeWhile(p,xs) Number of SCCs: 1, DPs: 6, edges: 12 SCC { #2..4 #6 #8 #9 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #app❆2_dropWhile(x1,x2) weight: (/ 1 4) + x1 app❆1_if(x1) weight: 0 app❆2_takeWhile(x1,x2) weight: 0 #app❆3_if(x1,x2,x3) weight: 0 app❆2_dropWhile(x1,x2) weight: 0 app❆1_takeWhile(x1) weight: (/ 1 2) + x1 app❆2_if(x1,x2) weight: 0 true() weight: 0 takeWhile() weight: 0 if() weight: 0 nil() weight: 0 app❆3_if(x1,x2,x3) weight: 0 #app(x1,x2) weight: x1 app❆1_dropWhile(x1) weight: (/ 1 2) + x1 #app❆2_takeWhile(x1,x2) weight: (/ 1 4) + x1 cons() weight: 0 app❆2_cons(x1,x2) weight: (/ 1 4) app❆1_cons(x1) weight: 0 dropWhile() weight: 0 app(x1,x2) weight: 0 Usable rules: { } Removed DPs: #2 #4 #6 #8 Number of SCCs: 2, DPs: 2, edges: 2 SCC { #3 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #app❆2_dropWhile(x1,x2) weight: (/ 1 4) + x2 app❆1_if(x1) weight: 0 app❆2_takeWhile(x1,x2) weight: 0 #app❆3_if(x1,x2,x3) weight: 0 app❆2_dropWhile(x1,x2) weight: 0 app❆1_takeWhile(x1) weight: (/ 1 2) app❆2_if(x1,x2) weight: 0 true() weight: 0 takeWhile() weight: 0 if() weight: 0 nil() weight: 0 app❆3_if(x1,x2,x3) weight: 0 #app(x1,x2) weight: 0 app❆1_dropWhile(x1) weight: (/ 1 2) #app❆2_takeWhile(x1,x2) weight: (/ 1 4) cons() weight: 0 app❆2_cons(x1,x2) weight: (/ 1 4) + x2 app❆1_cons(x1) weight: 0 dropWhile() weight: 0 app(x1,x2) weight: 0 Usable rules: { } Removed DPs: #3 Number of SCCs: 1, DPs: 1, edges: 1 SCC { #9 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #app❆2_dropWhile(x1,x2) weight: (/ 1 4) app❆1_if(x1) weight: 0 app❆2_takeWhile(x1,x2) weight: 0 #app❆3_if(x1,x2,x3) weight: 0 app❆2_dropWhile(x1,x2) weight: 0 app❆1_takeWhile(x1) weight: (/ 1 2) app❆2_if(x1,x2) weight: 0 true() weight: 0 takeWhile() weight: 0 if() weight: 0 nil() weight: 0 app❆3_if(x1,x2,x3) weight: 0 #app(x1,x2) weight: 0 app❆1_dropWhile(x1) weight: (/ 1 2) #app❆2_takeWhile(x1,x2) weight: (/ 1 4) + x2 cons() weight: 0 app❆2_cons(x1,x2) weight: (/ 1 4) + x2 app❆1_cons(x1) weight: 0 dropWhile() weight: 0 app(x1,x2) weight: 0 Usable rules: { } Removed DPs: #9 Number of SCCs: 0, DPs: 0, edges: 0 YES