Input TRS: 1: le(|0|(),y) -> true() 2: le(s(x),|0|()) -> false() 3: le(s(x),s(y)) -> le(x,y) 4: minus(|0|(),y) -> |0|() 5: minus(s(x),y) -> if_minus(le(s(x),y),s(x),y) 6: if_minus(true(),s(x),y) -> |0|() 7: if_minus(false(),s(x),y) -> s(minus(x,y)) 8: gcd(|0|(),y) -> y 9: gcd(s(x),|0|()) -> s(x) 10: gcd(s(x),s(y)) -> if_gcd(le(y,x),s(x),s(y)) 11: if_gcd(true(),s(x),s(y)) -> gcd(minus(x,y),s(y)) 12: if_gcd(false(),s(x),s(y)) -> gcd(minus(y,x),s(x)) 13: gcdL(nil()) -> |0|() 14: gcdL(cons(x,nil())) -> x 15: gcdL(cons(x,cons(y,xs))) -> gcdL(cons(gcd(x,y),xs)) 16: gcdL(cons(x,xs)) ->= gcdL(consSwap(x,xs)) 17: consSwap(x,xs) ->= cons(x,xs) 18: consSwap(x,cons(y,xs)) ->= cons(y,consSwap(x,xs)) Number of strict rules: 15 Direct Order(PosReal,>,Poly) ... failed. Freezing gcdL le 1: le❆1_|0|(y) -> true() 2: le❆1_s(x,|0|()) -> false() 3: le❆1_s(x,s(y)) -> le(x,y) 4: minus(|0|(),y) -> |0|() 5: minus(s(x),y) -> if_minus(le❆1_s(x,y),s(x),y) 6: if_minus(true(),s(x),y) -> |0|() 7: if_minus(false(),s(x),y) -> s(minus(x,y)) 8: gcd(|0|(),y) -> y 9: gcd(s(x),|0|()) -> s(x) 10: gcd(s(x),s(y)) -> if_gcd(le(y,x),s(x),s(y)) 11: if_gcd(true(),s(x),s(y)) -> gcd(minus(x,y),s(y)) 12: if_gcd(false(),s(x),s(y)) -> gcd(minus(y,x),s(x)) 13: gcdL❆1_nil() -> |0|() 14: gcdL❆1_cons(x,nil()) -> x 15: gcdL❆1_cons(x,cons(y,xs)) -> gcdL❆1_cons(gcd(x,y),xs) 16: gcdL❆1_cons(x,xs) ->= gcdL(consSwap(x,xs)) 17: consSwap(x,xs) ->= cons(x,xs) 18: consSwap(x,cons(y,xs)) ->= cons(y,consSwap(x,xs)) 19: le(|0|(),_1) ->= le❆1_|0|(_1) 20: le(s(_1),_2) ->= le❆1_s(_1,_2) 21: gcdL(cons(_1,_2)) ->= gcdL❆1_cons(_1,_2) 22: gcdL(nil()) ->= gcdL❆1_nil() Number of strict rules: 15 Direct Order(PosReal,>,Poly) ... failed. Dependency Pairs: #1: #if_gcd(true(),s(x),s(y)) -> #gcd(minus(x,y),s(y)) #2: #if_gcd(true(),s(x),s(y)) -> #minus(x,y) #3: #if_gcd(false(),s(x),s(y)) -> #gcd(minus(y,x),s(x)) #4: #if_gcd(false(),s(x),s(y)) -> #minus(y,x) #5: #le(s(_1),_2) ->? #le❆1_s(_1,_2) #6: #if_minus(false(),s(x),y) -> #minus(x,y) #7: #gcd(s(x),s(y)) -> #if_gcd(le(y,x),s(x),s(y)) #8: #gcd(s(x),s(y)) -> #le(y,x) #9: #minus(s(x),y) -> #if_minus(le❆1_s(x,y),s(x),y) #10: #minus(s(x),y) -> #le❆1_s(x,y) #11: #gcdL(nil()) ->? #gcdL❆1_nil() #12: #le(|0|(),_1) ->? #le❆1_|0|(_1) #13: #gcdL(cons(_1,_2)) ->? #gcdL❆1_cons(_1,_2) #14: #gcdL❆1_cons(x,xs) ->? #gcdL(consSwap(x,xs)) #15: #le❆1_s(x,s(y)) -> #le(x,y) #16: #gcdL❆1_cons(x,cons(y,xs)) -> #gcdL❆1_cons(gcd(x,y),xs) #17: #gcdL❆1_cons(x,cons(y,xs)) -> #gcd(x,y) Number of SCCs: 4, DPs: 10, edges: 13 SCC { #5 #15 } Removing DPs: Order(PosReal,>,Sum)... succeeded. |0|() weight: 0 le(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 #le(x1,x2) weight: x1 minus(x1,x2) weight: 0 gcd(x1,x2) weight: 0 false() weight: 0 #gcdL❆1_nil() weight: 0 true() weight: 0 le❆1_s(x1,x2) weight: 0 #gcdL(x1) weight: 0 #gcdL❆1_cons(x1,x2) weight: 0 consSwap(x1,x2) weight: 0 #if_minus(x1,x2,x3) weight: 0 le❆1_|0|(x1) weight: 0 nil() weight: 0 #le❆1_|0|(x1) weight: 0 #le❆1_s(x1,x2) weight: (/ 1 4) + x1 #minus(x1,x2) weight: 0 gcdL(x1) weight: 0 cons(x1,x2) weight: 0 if_minus(x1,x2,x3) weight: 0 if_gcd(x1,x2,x3) weight: 0 #if_gcd(x1,x2,x3) weight: 0 gcdL❆1_nil() weight: 0 gcdL❆1_cons(x1,x2) weight: 0 #gcd(x1,x2) weight: 0 Usable rules: { } Removed DPs: #5 #15 Number of SCCs: 3, DPs: 8, edges: 11 SCC { #6 #9 } Removing DPs: Order(PosReal,>,Sum)... succeeded. |0|() weight: 0 le(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 #le(x1,x2) weight: 0 minus(x1,x2) weight: 0 gcd(x1,x2) weight: 0 false() weight: 0 #gcdL❆1_nil() weight: 0 true() weight: 0 le❆1_s(x1,x2) weight: (/ 1 4) + x1 #gcdL(x1) weight: 0 #gcdL❆1_cons(x1,x2) weight: 0 consSwap(x1,x2) weight: 0 #if_minus(x1,x2,x3) weight: x2 le❆1_|0|(x1) weight: (/ 1 4) + x1 nil() weight: 0 #le❆1_|0|(x1) weight: 0 #le❆1_s(x1,x2) weight: (/ 1 4) #minus(x1,x2) weight: (/ 1 4) + x1 gcdL(x1) weight: 0 cons(x1,x2) weight: 0 if_minus(x1,x2,x3) weight: 0 if_gcd(x1,x2,x3) weight: 0 #if_gcd(x1,x2,x3) weight: 0 gcdL❆1_nil() weight: 0 gcdL❆1_cons(x1,x2) weight: 0 #gcd(x1,x2) weight: 0 Usable rules: { } Removed DPs: #6 #9 Number of SCCs: 2, DPs: 6, edges: 9 SCC { #13 #14 #16 } Removing DPs: Order(PosReal,>,Sum)... succeeded. |0|() weight: 0 le(x1,x2) weight: (/ 1 8) + x1 + x2 s(x1) weight: (/ 1 8) #le(x1,x2) weight: 0 minus(x1,x2) weight: (/ 1 4) + x1 + x2 gcd(x1,x2) weight: (/ 1 8) + x1 false() weight: 0 #gcdL❆1_nil() weight: 0 true() weight: 0 le❆1_s(x1,x2) weight: (/ 1 2) + x1 + x2 #gcdL(x1) weight: x1 #gcdL❆1_cons(x1,x2) weight: (/ 1 8) + x2 consSwap(x1,x2) weight: (/ 1 8) + x2 #if_minus(x1,x2,x3) weight: 0 le❆1_|0|(x1) weight: (/ 1 4) + x1 nil() weight: 0 #le❆1_|0|(x1) weight: 0 #le❆1_s(x1,x2) weight: (/ 1 8) #minus(x1,x2) weight: (/ 1 8) gcdL(x1) weight: 0 cons(x1,x2) weight: (/ 1 8) + x2 if_minus(x1,x2,x3) weight: x1 if_gcd(x1,x2,x3) weight: (/ 1 4) + x1 #if_gcd(x1,x2,x3) weight: 0 gcdL❆1_nil() weight: 0 gcdL❆1_cons(x1,x2) weight: 0 #gcd(x1,x2) weight: 0 Usable rules: { 17 18 } Removed DPs: #16 Number of SCCs: 2, DPs: 5, edges: 6 SCC { #13 #14 } 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