YES Input TRS: 1: a__natsFrom(N) -> cons(mark(N),natsFrom(s(N))) 2: a__fst(pair(XS,YS)) -> mark(XS) 3: a__snd(pair(XS,YS)) -> mark(YS) 4: a__splitAt(0(),XS) -> pair(nil(),mark(XS)) 5: a__splitAt(s(N),cons(X,XS)) -> a__u(a__splitAt(mark(N),mark(XS)),N,X,XS) 6: a__u(pair(YS,ZS),N,X,XS) -> pair(cons(mark(X),YS),mark(ZS)) 7: a__head(cons(N,XS)) -> mark(N) 8: a__tail(cons(N,XS)) -> mark(XS) 9: a__sel(N,XS) -> a__head(a__afterNth(mark(N),mark(XS))) 10: a__take(N,XS) -> a__fst(a__splitAt(mark(N),mark(XS))) 11: a__afterNth(N,XS) -> a__snd(a__splitAt(mark(N),mark(XS))) 12: mark(natsFrom(X)) -> a__natsFrom(mark(X)) 13: mark(fst(X)) -> a__fst(mark(X)) 14: mark(snd(X)) -> a__snd(mark(X)) 15: mark(splitAt(X1,X2)) -> a__splitAt(mark(X1),mark(X2)) 16: mark(u(X1,X2,X3,X4)) -> a__u(mark(X1),X2,X3,X4) 17: mark(head(X)) -> a__head(mark(X)) 18: mark(tail(X)) -> a__tail(mark(X)) 19: mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) 20: mark(afterNth(X1,X2)) -> a__afterNth(mark(X1),mark(X2)) 21: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) 22: mark(cons(X1,X2)) -> cons(mark(X1),X2) 23: mark(s(X)) -> s(mark(X)) 24: mark(pair(X1,X2)) -> pair(mark(X1),mark(X2)) 25: mark(0()) -> 0() 26: mark(nil()) -> nil() 27: a__natsFrom(X) -> natsFrom(X) 28: a__fst(X) -> fst(X) 29: a__snd(X) -> snd(X) 30: a__splitAt(X1,X2) -> splitAt(X1,X2) 31: a__u(X1,X2,X3,X4) -> u(X1,X2,X3,X4) 32: a__head(X) -> head(X) 33: a__tail(X) -> tail(X) 34: a__sel(X1,X2) -> sel(X1,X2) 35: a__afterNth(X1,X2) -> afterNth(X1,X2) 36: a__take(X1,X2) -> take(X1,X2) Number of strict rules: 36 Direct POLO(bPol) ... failed. Uncurrying ... failed. Dependency Pairs: #1: #a__fst(pair(XS,YS)) -> #mark(XS) #2: #a__u(pair(YS,ZS),N,X,XS) -> #mark(X) #3: #a__u(pair(YS,ZS),N,X,XS) -> #mark(ZS) #4: #mark(fst(X)) -> #a__fst(mark(X)) #5: #mark(fst(X)) -> #mark(X) #6: #a__sel(N,XS) -> #a__head(a__afterNth(mark(N),mark(XS))) #7: #a__sel(N,XS) -> #a__afterNth(mark(N),mark(XS)) #8: #a__sel(N,XS) -> #mark(N) #9: #a__sel(N,XS) -> #mark(XS) #10: #a__afterNth(N,XS) -> #a__snd(a__splitAt(mark(N),mark(XS))) #11: #a__afterNth(N,XS) -> #a__splitAt(mark(N),mark(XS)) #12: #a__afterNth(N,XS) -> #mark(N) #13: #a__afterNth(N,XS) -> #mark(XS) #14: #mark(pair(X1,X2)) -> #mark(X1) #15: #mark(pair(X1,X2)) -> #mark(X2) #16: #mark(s(X)) -> #mark(X) #17: #mark(natsFrom(X)) -> #a__natsFrom(mark(X)) #18: #mark(natsFrom(X)) -> #mark(X) #19: #mark(snd(X)) -> #a__snd(mark(X)) #20: #mark(snd(X)) -> #mark(X) #21: #mark(afterNth(X1,X2)) -> #a__afterNth(mark(X1),mark(X2)) #22: #mark(afterNth(X1,X2)) -> #mark(X1) #23: #mark(afterNth(X1,X2)) -> #mark(X2) #24: #a__head(cons(N,XS)) -> #mark(N) #25: #a__take(N,XS) -> #a__fst(a__splitAt(mark(N),mark(XS))) #26: #a__take(N,XS) -> #a__splitAt(mark(N),mark(XS)) #27: #a__take(N,XS) -> #mark(N) #28: #a__take(N,XS) -> #mark(XS) #29: #a__splitAt(s(N),cons(X,XS)) -> #a__u(a__splitAt(mark(N),mark(XS)),N,X,XS) #30: #a__splitAt(s(N),cons(X,XS)) -> #a__splitAt(mark(N),mark(XS)) #31: #a__splitAt(s(N),cons(X,XS)) -> #mark(N) #32: #a__splitAt(s(N),cons(X,XS)) -> #mark(XS) #33: #mark(cons(X1,X2)) -> #mark(X1) #34: #mark(head(X)) -> #a__head(mark(X)) #35: #mark(head(X)) -> #mark(X) #36: #mark(sel(X1,X2)) -> #a__sel(mark(X1),mark(X2)) #37: #mark(sel(X1,X2)) -> #mark(X1) #38: #mark(sel(X1,X2)) -> #mark(X2) #39: #mark(take(X1,X2)) -> #a__take(mark(X1),mark(X2)) #40: #mark(take(X1,X2)) -> #mark(X1) #41: #mark(take(X1,X2)) -> #mark(X2) #42: #mark(u(X1,X2,X3,X4)) -> #a__u(mark(X1),X2,X3,X4) #43: #mark(u(X1,X2,X3,X4)) -> #mark(X1) #44: #a__snd(pair(XS,YS)) -> #mark(YS) #45: #a__natsFrom(N) -> #mark(N) #46: #a__tail(cons(N,XS)) -> #mark(XS) #47: #mark(splitAt(X1,X2)) -> #a__splitAt(mark(X1),mark(X2)) #48: #mark(splitAt(X1,X2)) -> #mark(X1) #49: #mark(splitAt(X1,X2)) -> #mark(X2) #50: #a__splitAt(0(),XS) -> #mark(XS) #51: #mark(tail(X)) -> #a__tail(mark(X)) #52: #mark(tail(X)) -> #mark(X) Number of SCCs: 1, DPs: 52 SCC { #1..52 } POLO(Sum)... POLO(max)... succeeded. s w: x1 #a__head w: x1 + 74785 #a__natsFrom w: x1 + 67156 #a__snd w: x1 + 67154 a__afterNth w: max(x1 + 60531, x2 + 60532) u w: max(x1, x2 + 60525, x3 + 60531, x4 + 60527) take w: max(x1 + 60531, x2 + 60532) pair w: max(x1 + 31118, x2 + 60525) fst w: x1 + 1 natsFrom w: x1 + 29407 a__snd w: x1 + 1 splitAt w: max(x1 + 60530, x2 + 60528) #a__take w: max(x1 + 127681, x2 + 127683) a__natsFrom w: x1 + 29407 a__fst w: x1 + 1 tail w: x1 + 2 #mark w: x1 + 67155 0 w: 21084 a__u w: max(x1, x2 + 60525, x3 + 60531, x4 + 60527) sel w: max(x1 + 68163, x2 + 68164) afterNth w: max(x1 + 60531, x2 + 60532) nil w: 12280 a__splitAt w: max(x1 + 60530, x2 + 60528) #a__sel w: max(x1 + 135316, x2 + 135317) mark w: x1 a__sel w: max(x1 + 68163, x2 + 68164) head w: x1 + 7632 #a__afterNth w: max(x1 + 127685, x2 + 127683) #a__splitAt w: max(x1 + 127680, x2 + 127682) cons w: max(x1 + 29407, x2) snd w: x1 + 1 #a__u w: max(x1 + 36038, x2 + 67156, x3 + 127683, x4 + 127681) a__take w: max(x1 + 60531, x2 + 60532) #a__fst w: x1 + 67150 a__tail w: x1 + 2 #a__tail w: x1 + 67156 a__head w: x1 + 7632 USABLE RULES: { 1..36 } Removed DPs: #1..5 #7..15 #17..29 #31..42 #44..52 Number of SCCs: 2, DPs: 3 SCC { #30 } POLO(Sum)... POLO(max)... QLPOS... POLO(mSum)... succeeded. s w: max(x1 + 2, 0) #a__head w: 0 #a__natsFrom w: max(x1 - 1, 0) #a__snd w: max(x1 - 1, 0) a__afterNth w: max(x1 + x2, 0) u w: max(x1, x3 + 1, 0) take w: max(x1 + x2, 0) pair w: max(x1, x2, 0) fst w: max(x1, 0) natsFrom w: max(x1 + 3, 0) a__snd w: max(x1, 0) splitAt w: max(x1 + x2 - 1, 0) #a__take w: 0 a__natsFrom w: max(x1 + 3, 0) a__fst w: max(x1, 0) tail w: max(x1 + 2, 0) #mark w: max(x1 - 1, 0) 0 w: 2 a__u w: max(x1, x3 + 1, 0) sel w: max(x1 + x2 + 2, 0) afterNth w: max(x1 + x2, 0) nil w: 1 a__splitAt w: max(x1 + x2 - 1, 0) #a__sel w: max(x1 - 1, 0) mark w: max(x1, 0) a__sel w: max(x1 + x2 + 2, 0) head w: max(x1 + 2, 0) #a__afterNth w: max(x2 - 1, 0) #a__splitAt w: max(x1 - 1, 0) cons w: max(x1, x2 - 2, 0) snd w: max(x1, 0) #a__u w: max(x2 - 1, 0) a__take w: max(x1 + x2, 0) #a__fst w: max(x1 - 1, 0) a__tail w: max(x1 + 2, 0) #a__tail w: max(x1 - 1, 0) a__head w: max(x1 + 2, 0) USABLE RULES: { 1..36 } Removed DPs: #30 Number of SCCs: 1, DPs: 2 SCC { #16 #43 } POLO(Sum)... succeeded. s w: x1 + 1 #a__head w: 1 #a__natsFrom w: 0 #a__snd w: 0 a__afterNth w: 1 u w: x1 + 2 take w: 2 pair w: 5 fst w: 5 natsFrom w: 5 a__snd w: 2 splitAt w: x1 + 5 #a__take w: 0 a__natsFrom w: 4 a__fst w: 4 tail w: x1 + 3 #mark w: x1 0 w: 4 a__u w: x1 + x2 + x3 + x4 + 1 sel w: x1 + 2 afterNth w: x2 + 2 nil w: 4 a__splitAt w: 4 #a__sel w: 0 mark w: 3 a__sel w: x2 + 1 head w: x1 + 5 #a__afterNth w: 0 #a__splitAt w: 0 cons w: x1 + 2 snd w: x1 + 3 #a__u w: 0 a__take w: x2 + 1 #a__fst w: 0 a__tail w: 2 #a__tail w: 1 a__head w: 4 USABLE RULES: { } Removed DPs: #16 #43 Number of SCCs: 0, DPs: 0