Input TRS: 1: a__U11(tt(),N,X,XS) -> a__U12(a__splitAt(mark(N),mark(XS)),X) 2: a__U12(pair(YS,ZS),X) -> pair(cons(mark(X),YS),mark(ZS)) 3: a__afterNth(N,XS) -> a__snd(a__splitAt(mark(N),mark(XS))) 4: a__and(tt(),X) -> mark(X) 5: a__fst(pair(X,Y)) -> mark(X) 6: a__head(cons(N,XS)) -> mark(N) 7: a__natsFrom(N) -> cons(mark(N),natsFrom(s(N))) 8: a__sel(N,XS) -> a__head(a__afterNth(mark(N),mark(XS))) 9: a__snd(pair(X,Y)) -> mark(Y) 10: a__splitAt(0(),XS) -> pair(nil(),mark(XS)) 11: a__splitAt(s(N),cons(X,XS)) -> a__U11(tt(),N,X,XS) 12: a__tail(cons(N,XS)) -> mark(XS) 13: a__take(N,XS) -> a__fst(a__splitAt(mark(N),mark(XS))) 14: mark(U11(X1,X2,X3,X4)) -> a__U11(mark(X1),X2,X3,X4) 15: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) 16: mark(splitAt(X1,X2)) -> a__splitAt(mark(X1),mark(X2)) 17: mark(afterNth(X1,X2)) -> a__afterNth(mark(X1),mark(X2)) 18: mark(snd(X)) -> a__snd(mark(X)) 19: mark(and(X1,X2)) -> a__and(mark(X1),X2) 20: mark(fst(X)) -> a__fst(mark(X)) 21: mark(head(X)) -> a__head(mark(X)) 22: mark(natsFrom(X)) -> a__natsFrom(mark(X)) 23: mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) 24: mark(tail(X)) -> a__tail(mark(X)) 25: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) 26: mark(tt()) -> tt() 27: mark(pair(X1,X2)) -> pair(mark(X1),mark(X2)) 28: mark(cons(X1,X2)) -> cons(mark(X1),X2) 29: mark(s(X)) -> s(mark(X)) 30: mark(0()) -> 0() 31: mark(nil()) -> nil() 32: a__U11(X1,X2,X3,X4) -> U11(X1,X2,X3,X4) 33: a__U12(X1,X2) -> U12(X1,X2) 34: a__splitAt(X1,X2) -> splitAt(X1,X2) 35: a__afterNth(X1,X2) -> afterNth(X1,X2) 36: a__snd(X) -> snd(X) 37: a__and(X1,X2) -> and(X1,X2) 38: a__fst(X) -> fst(X) 39: a__head(X) -> head(X) 40: a__natsFrom(X) -> natsFrom(X) 41: a__sel(X1,X2) -> sel(X1,X2) 42: a__tail(X) -> tail(X) 43: a__take(X1,X2) -> take(X1,X2) Number of strict rules: 43 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #a__U12(pair(YS,ZS),X) -> #mark(X) #2: #a__U12(pair(YS,ZS),X) -> #mark(ZS) #3: #mark(s(X)) -> #mark(X) #4: #a__head(cons(N,XS)) -> #mark(N) #5: #a__take(N,XS) -> #a__fst(a__splitAt(mark(N),mark(XS))) #6: #a__take(N,XS) -> #a__splitAt(mark(N),mark(XS)) #7: #a__take(N,XS) -> #mark(N) #8: #a__take(N,XS) -> #mark(XS) #9: #a__snd(pair(X,Y)) -> #mark(Y) #10: #a__splitAt(s(N),cons(X,XS)) -> #a__U11(tt(),N,X,XS) #11: #mark(tail(X)) -> #a__tail(mark(X)) #12: #mark(tail(X)) -> #mark(X) #13: #mark(sel(X1,X2)) -> #a__sel(mark(X1),mark(X2)) #14: #mark(sel(X1,X2)) -> #mark(X1) #15: #mark(sel(X1,X2)) -> #mark(X2) #16: #a__tail(cons(N,XS)) -> #mark(XS) #17: #mark(U11(X1,X2,X3,X4)) -> #a__U11(mark(X1),X2,X3,X4) #18: #mark(U11(X1,X2,X3,X4)) -> #mark(X1) #19: #mark(take(X1,X2)) -> #a__take(mark(X1),mark(X2)) #20: #mark(take(X1,X2)) -> #mark(X1) #21: #mark(take(X1,X2)) -> #mark(X2) #22: #mark(fst(X)) -> #a__fst(mark(X)) #23: #mark(fst(X)) -> #mark(X) #24: #a__natsFrom(N) -> #mark(N) #25: #a__splitAt(0(),XS) -> #mark(XS) #26: #a__fst(pair(X,Y)) -> #mark(X) #27: #mark(cons(X1,X2)) -> #mark(X1) #28: #mark(natsFrom(X)) -> #a__natsFrom(mark(X)) #29: #mark(natsFrom(X)) -> #mark(X) #30: #mark(pair(X1,X2)) -> #mark(X1) #31: #mark(pair(X1,X2)) -> #mark(X2) #32: #mark(afterNth(X1,X2)) -> #a__afterNth(mark(X1),mark(X2)) #33: #mark(afterNth(X1,X2)) -> #mark(X1) #34: #mark(afterNth(X1,X2)) -> #mark(X2) #35: #mark(and(X1,X2)) -> #a__and(mark(X1),X2) #36: #mark(and(X1,X2)) -> #mark(X1) #37: #mark(head(X)) -> #a__head(mark(X)) #38: #mark(head(X)) -> #mark(X) #39: #mark(splitAt(X1,X2)) -> #a__splitAt(mark(X1),mark(X2)) #40: #mark(splitAt(X1,X2)) -> #mark(X1) #41: #mark(splitAt(X1,X2)) -> #mark(X2) #42: #a__afterNth(N,XS) -> #a__snd(a__splitAt(mark(N),mark(XS))) #43: #a__afterNth(N,XS) -> #a__splitAt(mark(N),mark(XS)) #44: #a__afterNth(N,XS) -> #mark(N) #45: #a__afterNth(N,XS) -> #mark(XS) #46: #a__U11(tt(),N,X,XS) -> #a__U12(a__splitAt(mark(N),mark(XS)),X) #47: #a__U11(tt(),N,X,XS) -> #a__splitAt(mark(N),mark(XS)) #48: #a__U11(tt(),N,X,XS) -> #mark(N) #49: #a__U11(tt(),N,X,XS) -> #mark(XS) #50: #a__sel(N,XS) -> #a__head(a__afterNth(mark(N),mark(XS))) #51: #a__sel(N,XS) -> #a__afterNth(mark(N),mark(XS)) #52: #a__sel(N,XS) -> #mark(N) #53: #a__sel(N,XS) -> #mark(XS) #54: #mark(U12(X1,X2)) -> #a__U12(mark(X1),X2) #55: #mark(U12(X1,X2)) -> #mark(X1) #56: #a__and(tt(),X) -> #mark(X) #57: #mark(snd(X)) -> #a__snd(mark(X)) #58: #mark(snd(X)) -> #mark(X) Number of SCCs: 1, DPs: 58, edges: 1229 SCC { #1..58 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... succeeded. U11(x1,x2,x3,x4) weight: max{(/ 11993 4) + x4, 2998 + x3, (/ 11993 4) + x2, (/ 5997 2) + x1} s(x1) weight: x1 #a__head(x1) weight: (/ 1 8) + x1 #a__natsFrom(x1) weight: 2998 + x1 #a__snd(x1) weight: (/ 23983 8) + x1 a__afterNth(x1,x2) weight: max{(/ 5997 2) + x2, (/ 23989 8) + x1} take(x1,x2) weight: max{(/ 23989 8) + x2, (/ 5997 2) + x1} and(x1,x2) weight: max{(/ 1 4) + x2, (/ 1 2) + x1} pair(x1,x2) weight: max{2998 + x2, (/ 1 8) + x1} fst(x1) weight: (/ 1 8) + x1 natsFrom(x1) weight: (/ 23983 8) + x1 a__snd(x1) weight: (/ 1 8) + x1 splitAt(x1,x2) weight: max{(/ 11993 4) + x2, (/ 11993 4) + x1} #a__U11(x1,x2,x3,x4) weight: max{(/ 5997 2) + x4, (/ 23983 4) + x3, 5996 + x2, (/ 23985 4) + x1} #a__take(x1,x2) weight: max{(/ 47971 8) + x2, (/ 23985 4) + x1} U12(x1,x2) weight: max{2998 + x2, x1} #a__U12(x1,x2) weight: max{(/ 47965 8) + x2, (/ 1 8) + x1} a__fst(x1) weight: (/ 1 8) + x1 a__natsFrom(x1) weight: (/ 23983 8) + x1 tail(x1) weight: (/ 1 4) + x1 #mark(x1) weight: (/ 23983 8) + x1 0() weight: (/ 1 8) #a__and(x1,x2) weight: max{2998 + x2, (/ 11993 4) + x1} sel(x1,x2) weight: max{(/ 23989 8) + x2, (/ 11995 4) + x1} afterNth(x1,x2) weight: max{(/ 5997 2) + x2, (/ 23989 8) + x1} nil() weight: (/ 11993 4) a__splitAt(x1,x2) weight: max{(/ 11993 4) + x2, (/ 11993 4) + x1} #a__sel(x1,x2) weight: max{(/ 47971 8) + x2, (/ 11993 2) + x1} mark(x1) weight: x1 a__U11(x1,x2,x3,x4) weight: max{(/ 11993 4) + x4, 2998 + x3, (/ 11993 4) + x2, (/ 5997 2) + x1} a__sel(x1,x2) weight: max{(/ 23989 8) + x2, (/ 11995 4) + x1} a__U12(x1,x2) weight: max{2998 + x2, x1} head(x1) weight: (/ 1 8) + x1 #a__afterNth(x1,x2) weight: max{(/ 23985 4) + x2, (/ 47971 8) + x1} #a__splitAt(x1,x2) weight: max{(/ 5997 2) + x2, 5996 + x1} cons(x1,x2) weight: max{x2, (/ 23983 8) + x1} snd(x1) weight: (/ 1 8) + x1 a__take(x1,x2) weight: max{(/ 23989 8) + x2, (/ 5997 2) + x1} tt() weight: (/ 1 8) #a__fst(x1) weight: (/ 23983 8) + x1 a__and(x1,x2) weight: max{(/ 1 4) + x2, (/ 1 2) + x1} a__tail(x1) weight: (/ 1 4) + x1 #a__tail(x1) weight: 2998 + x1 a__head(x1) weight: (/ 1 8) + x1 Usable rules: { 1..43 } Removed DPs: #1 #2 #4..9 #11..46 #48..54 #56..58 Number of SCCs: 2, DPs: 4, edges: 6 SCC { #3 #55 } Removing DPs: Order(PosReal,>,Sum)... succeeded. U11(x1,x2,x3,x4) weight: (/ 7 8) + x1 + x3 s(x1) weight: (/ 1 8) + x1 #a__head(x1) weight: 0 #a__natsFrom(x1) weight: 0 #a__snd(x1) weight: 0 a__afterNth(x1,x2) weight: (/ 1 8) take(x1,x2) weight: (/ 1 8) + x1 and(x1,x2) weight: (/ 1 8) pair(x1,x2) weight: (/ 3 4) fst(x1) weight: (/ 1 4) + x1 natsFrom(x1) weight: (/ 1 8) a__snd(x1) weight: (/ 1 4) splitAt(x1,x2) weight: (/ 1 8) + x1 + x2 #a__U11(x1,x2,x3,x4) weight: 0 #a__take(x1,x2) weight: 0 U12(x1,x2) weight: (/ 1 8) + x1 + x2 #a__U12(x1,x2) weight: 0 a__fst(x1) weight: (/ 1 8) a__natsFrom(x1) weight: (/ 5 8) tail(x1) weight: (/ 1 8) #mark(x1) weight: x1 0() weight: 0 #a__and(x1,x2) weight: 0 sel(x1,x2) weight: (/ 1 8) + x1 afterNth(x1,x2) weight: (/ 1 4) + x1 + x2 nil() weight: 0 a__splitAt(x1,x2) weight: (/ 5 8) #a__sel(x1,x2) weight: 0 mark(x1) weight: (/ 3 8) + x1 a__U11(x1,x2,x3,x4) weight: (/ 3 4) + x2 + x4 a__sel(x1,x2) weight: x2 a__U12(x1,x2) weight: (/ 1 4) + x1 + x2 head(x1) weight: (/ 1 8) + x1 #a__afterNth(x1,x2) weight: 0 #a__splitAt(x1,x2) weight: 0 cons(x1,x2) weight: (/ 3 4) snd(x1) weight: (/ 3 8) a__take(x1,x2) weight: x2 tt() weight: 0 #a__fst(x1) weight: 0 a__and(x1,x2) weight: (/ 5 8) a__tail(x1) weight: (/ 1 4) + x1 #a__tail(x1) weight: 0 a__head(x1) weight: (/ 5 8) Usable rules: { } Removed DPs: #3 #55 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #10 #47 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... succeeded. U11(x1,x2,x3,x4) weight: max{0, x4, x3, (/ 1 4) + x2} status: [] precedence above: pair U12 a__U11 a__U12 s(x1) weight: x1 status: [x1] precedence above: U11 pair splitAt #a__U11 U12 tail a__splitAt mark a__U11 a__U12 #a__splitAt tt a__tail #a__head(x1) weight: x1 status: [] precedence above: #a__natsFrom(x1) weight: x1 status: [] precedence above: #a__snd(x1) weight: (/ 1 8) status: [] precedence above: a__afterNth(x1,x2) weight: (/ 1 2) + x2 + x1 status: [x2] precedence above: a__snd afterNth snd take(x1,x2) weight: (/ 1 2) + x2 + x1 status: [] precedence above: U11 pair fst splitAt U12 a__fst a__splitAt a__U11 a__U12 a__take and(x1,x2) weight: (/ 1 8) + x2 status: [] precedence above: U11 pair splitAt U12 a__splitAt a__U11 a__U12 a__and pair(x1,x2) weight: max{x2, x1} status: [] precedence above: fst(x1) weight: (/ 1 8) + x1 status: [] precedence above: a__fst natsFrom(x1) weight: x1 status: [x1] precedence above: a__natsFrom cons a__snd(x1) weight: (/ 1 8) + x1 status: [] precedence above: snd splitAt(x1,x2) weight: max{x2, (/ 1 4) + x1} status: [] precedence above: U11 pair U12 a__splitAt a__U11 a__U12 #a__U11(x1,x2,x3,x4) weight: max{(/ 1 4) + x4, (/ 1 4) + x3, (/ 1 2) + x2, (/ 1 4) + x1} status: [x2,x4,x1] precedence above: U11 pair splitAt U12 tail a__splitAt mark a__U11 a__U12 #a__splitAt a__tail #a__take(x1,x2) weight: (/ 1 8) + x1 status: [x1] precedence above: U12(x1,x2) weight: max{x2, x1} status: [] precedence above: pair a__U12 #a__U12(x1,x2) weight: (/ 1 8) + x2 status: [x2] precedence above: a__fst(x1) weight: (/ 1 8) + x1 status: [] precedence above: fst a__natsFrom(x1) weight: x1 status: [x1] precedence above: natsFrom cons tail(x1) weight: (/ 1 8) + x1 status: [] precedence above: a__tail #mark(x1) weight: (/ 1 8) status: [] precedence above: 0() weight: (/ 1 4) status: [] precedence above: #a__and(x1,x2) weight: (/ 1 8) + x2 + x1 status: [x2,x1] precedence above: sel(x1,x2) weight: (/ 3 4) + x2 + x1 status: [x2] precedence above: a__afterNth a__snd afterNth a__sel head snd a__head afterNth(x1,x2) weight: (/ 1 2) + x2 + x1 status: [x2] precedence above: a__afterNth a__snd snd nil() weight: (/ 1 8) status: [] precedence above: a__splitAt(x1,x2) weight: max{x2, (/ 1 4) + x1} status: [] precedence above: U11 pair splitAt U12 a__U11 a__U12 #a__sel(x1,x2) weight: (/ 1 8) + x2 + x1 status: [x1,x2] precedence above: mark(x1) weight: x1 status: x1 a__U11(x1,x2,x3,x4) weight: max{0, x4, x3, (/ 1 4) + x2} status: [] precedence above: U11 pair U12 a__U12 a__sel(x1,x2) weight: (/ 3 4) + x2 + x1 status: [x2] precedence above: a__afterNth a__snd sel afterNth head snd a__head a__U12(x1,x2) weight: max{x2, x1} status: [] precedence above: pair U12 head(x1) weight: (/ 1 8) + x1 status: [] precedence above: a__head #a__afterNth(x1,x2) weight: x1 status: [x1] precedence above: #a__splitAt(x1,x2) weight: max{(/ 1 4) + x2, (/ 1 2) + x1} status: [x1,x2] precedence above: U11 pair splitAt #a__U11 U12 tail a__splitAt mark a__U11 a__U12 a__tail cons(x1,x2) weight: max{x2, x1} status: [x1] precedence above: snd(x1) weight: (/ 1 8) + x1 status: [] precedence above: a__snd a__take(x1,x2) weight: (/ 1 2) + x2 + x1 status: [] precedence above: U11 take pair fst splitAt U12 a__fst a__splitAt a__U11 a__U12 tt() weight: (/ 1 8) status: [] precedence above: U11 pair splitAt #a__U11 U12 tail a__splitAt mark a__U11 a__U12 #a__splitAt a__tail #a__fst(x1) weight: x1 status: [] precedence above: a__and(x1,x2) weight: (/ 1 8) + x2 status: [] precedence above: U11 and pair splitAt U12 a__splitAt a__U11 a__U12 a__tail(x1) weight: (/ 1 8) + x1 status: [] precedence above: tail #a__tail(x1) weight: x1 status: [] precedence above: a__head(x1) weight: (/ 1 8) + x1 status: [] precedence above: head Usable rules: { 1..43 } Removed DPs: #10 #47 Number of SCCs: 0, DPs: 0, edges: 0 YES