YES Problem 1: (VAR v_NonEmpty:S N:S X:S XS:S Y:S YS:S ZS:S) (RULES U11(tt,N:S,X:S,XS:S) -> U12(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U12(pair(YS:S,ZS:S),X:S) -> pair(cons(activate(X:S),YS:S),ZS:S) activate(n__natsFrom(X:S)) -> natsFrom(X:S) activate(X:S) -> X:S afterNth(N:S,XS:S) -> snd(splitAt(N:S,XS:S)) and(tt,X:S) -> activate(X:S) fst(pair(X:S,Y:S)) -> X:S head(cons(N:S,XS:S)) -> N:S natsFrom(N:S) -> cons(N:S,n__natsFrom(s(N:S))) natsFrom(X:S) -> n__natsFrom(X:S) sel(N:S,XS:S) -> head(afterNth(N:S,XS:S)) snd(pair(X:S,Y:S)) -> Y:S splitAt(0,XS:S) -> pair(nil,XS:S) splitAt(s(N:S),cons(X:S,XS:S)) -> U11(tt,N:S,X:S,activate(XS:S)) tail(cons(N:S,XS:S)) -> activate(XS:S) take(N:S,XS:S) -> fst(splitAt(N:S,XS:S)) ) Problem 1: Dependency Pairs Processor: -> Pairs: U11#(tt,N:S,X:S,XS:S) -> U12#(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U11#(tt,N:S,X:S,XS:S) -> ACTIVATE(N:S) U11#(tt,N:S,X:S,XS:S) -> ACTIVATE(X:S) U11#(tt,N:S,X:S,XS:S) -> ACTIVATE(XS:S) U11#(tt,N:S,X:S,XS:S) -> SPLITAT(activate(N:S),activate(XS:S)) U12#(pair(YS:S,ZS:S),X:S) -> ACTIVATE(X:S) ACTIVATE(n__natsFrom(X:S)) -> NATSFROM(X:S) AFTERNTH(N:S,XS:S) -> SND(splitAt(N:S,XS:S)) AFTERNTH(N:S,XS:S) -> SPLITAT(N:S,XS:S) AND(tt,X:S) -> ACTIVATE(X:S) SEL(N:S,XS:S) -> AFTERNTH(N:S,XS:S) SEL(N:S,XS:S) -> HEAD(afterNth(N:S,XS:S)) SPLITAT(s(N:S),cons(X:S,XS:S)) -> U11#(tt,N:S,X:S,activate(XS:S)) SPLITAT(s(N:S),cons(X:S,XS:S)) -> ACTIVATE(XS:S) TAIL(cons(N:S,XS:S)) -> ACTIVATE(XS:S) TAKE(N:S,XS:S) -> FST(splitAt(N:S,XS:S)) TAKE(N:S,XS:S) -> SPLITAT(N:S,XS:S) -> Rules: U11(tt,N:S,X:S,XS:S) -> U12(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U12(pair(YS:S,ZS:S),X:S) -> pair(cons(activate(X:S),YS:S),ZS:S) activate(n__natsFrom(X:S)) -> natsFrom(X:S) activate(X:S) -> X:S afterNth(N:S,XS:S) -> snd(splitAt(N:S,XS:S)) and(tt,X:S) -> activate(X:S) fst(pair(X:S,Y:S)) -> X:S head(cons(N:S,XS:S)) -> N:S natsFrom(N:S) -> cons(N:S,n__natsFrom(s(N:S))) natsFrom(X:S) -> n__natsFrom(X:S) sel(N:S,XS:S) -> head(afterNth(N:S,XS:S)) snd(pair(X:S,Y:S)) -> Y:S splitAt(0,XS:S) -> pair(nil,XS:S) splitAt(s(N:S),cons(X:S,XS:S)) -> U11(tt,N:S,X:S,activate(XS:S)) tail(cons(N:S,XS:S)) -> activate(XS:S) take(N:S,XS:S) -> fst(splitAt(N:S,XS:S)) Problem 1: SCC Processor: -> Pairs: U11#(tt,N:S,X:S,XS:S) -> U12#(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U11#(tt,N:S,X:S,XS:S) -> ACTIVATE(N:S) U11#(tt,N:S,X:S,XS:S) -> ACTIVATE(X:S) U11#(tt,N:S,X:S,XS:S) -> ACTIVATE(XS:S) U11#(tt,N:S,X:S,XS:S) -> SPLITAT(activate(N:S),activate(XS:S)) U12#(pair(YS:S,ZS:S),X:S) -> ACTIVATE(X:S) ACTIVATE(n__natsFrom(X:S)) -> NATSFROM(X:S) AFTERNTH(N:S,XS:S) -> SND(splitAt(N:S,XS:S)) AFTERNTH(N:S,XS:S) -> SPLITAT(N:S,XS:S) AND(tt,X:S) -> ACTIVATE(X:S) SEL(N:S,XS:S) -> AFTERNTH(N:S,XS:S) SEL(N:S,XS:S) -> HEAD(afterNth(N:S,XS:S)) SPLITAT(s(N:S),cons(X:S,XS:S)) -> U11#(tt,N:S,X:S,activate(XS:S)) SPLITAT(s(N:S),cons(X:S,XS:S)) -> ACTIVATE(XS:S) TAIL(cons(N:S,XS:S)) -> ACTIVATE(XS:S) TAKE(N:S,XS:S) -> FST(splitAt(N:S,XS:S)) TAKE(N:S,XS:S) -> SPLITAT(N:S,XS:S) -> Rules: U11(tt,N:S,X:S,XS:S) -> U12(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U12(pair(YS:S,ZS:S),X:S) -> pair(cons(activate(X:S),YS:S),ZS:S) activate(n__natsFrom(X:S)) -> natsFrom(X:S) activate(X:S) -> X:S afterNth(N:S,XS:S) -> snd(splitAt(N:S,XS:S)) and(tt,X:S) -> activate(X:S) fst(pair(X:S,Y:S)) -> X:S head(cons(N:S,XS:S)) -> N:S natsFrom(N:S) -> cons(N:S,n__natsFrom(s(N:S))) natsFrom(X:S) -> n__natsFrom(X:S) sel(N:S,XS:S) -> head(afterNth(N:S,XS:S)) snd(pair(X:S,Y:S)) -> Y:S splitAt(0,XS:S) -> pair(nil,XS:S) splitAt(s(N:S),cons(X:S,XS:S)) -> U11(tt,N:S,X:S,activate(XS:S)) tail(cons(N:S,XS:S)) -> activate(XS:S) take(N:S,XS:S) -> fst(splitAt(N:S,XS:S)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U11#(tt,N:S,X:S,XS:S) -> SPLITAT(activate(N:S),activate(XS:S)) SPLITAT(s(N:S),cons(X:S,XS:S)) -> U11#(tt,N:S,X:S,activate(XS:S)) ->->-> Rules: U11(tt,N:S,X:S,XS:S) -> U12(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U12(pair(YS:S,ZS:S),X:S) -> pair(cons(activate(X:S),YS:S),ZS:S) activate(n__natsFrom(X:S)) -> natsFrom(X:S) activate(X:S) -> X:S afterNth(N:S,XS:S) -> snd(splitAt(N:S,XS:S)) and(tt,X:S) -> activate(X:S) fst(pair(X:S,Y:S)) -> X:S head(cons(N:S,XS:S)) -> N:S natsFrom(N:S) -> cons(N:S,n__natsFrom(s(N:S))) natsFrom(X:S) -> n__natsFrom(X:S) sel(N:S,XS:S) -> head(afterNth(N:S,XS:S)) snd(pair(X:S,Y:S)) -> Y:S splitAt(0,XS:S) -> pair(nil,XS:S) splitAt(s(N:S),cons(X:S,XS:S)) -> U11(tt,N:S,X:S,activate(XS:S)) tail(cons(N:S,XS:S)) -> activate(XS:S) take(N:S,XS:S) -> fst(splitAt(N:S,XS:S)) Problem 1: Reduction Pair Processor: -> Pairs: U11#(tt,N:S,X:S,XS:S) -> SPLITAT(activate(N:S),activate(XS:S)) SPLITAT(s(N:S),cons(X:S,XS:S)) -> U11#(tt,N:S,X:S,activate(XS:S)) -> Rules: U11(tt,N:S,X:S,XS:S) -> U12(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U12(pair(YS:S,ZS:S),X:S) -> pair(cons(activate(X:S),YS:S),ZS:S) activate(n__natsFrom(X:S)) -> natsFrom(X:S) activate(X:S) -> X:S afterNth(N:S,XS:S) -> snd(splitAt(N:S,XS:S)) and(tt,X:S) -> activate(X:S) fst(pair(X:S,Y:S)) -> X:S head(cons(N:S,XS:S)) -> N:S natsFrom(N:S) -> cons(N:S,n__natsFrom(s(N:S))) natsFrom(X:S) -> n__natsFrom(X:S) sel(N:S,XS:S) -> head(afterNth(N:S,XS:S)) snd(pair(X:S,Y:S)) -> Y:S splitAt(0,XS:S) -> pair(nil,XS:S) splitAt(s(N:S),cons(X:S,XS:S)) -> U11(tt,N:S,X:S,activate(XS:S)) tail(cons(N:S,XS:S)) -> activate(XS:S) take(N:S,XS:S) -> fst(splitAt(N:S,XS:S)) -> Usable rules: activate(n__natsFrom(X:S)) -> natsFrom(X:S) activate(X:S) -> X:S natsFrom(N:S) -> cons(N:S,n__natsFrom(s(N:S))) natsFrom(X:S) -> n__natsFrom(X:S) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [activate](X) = X + 1 [natsFrom](X) = 2 [cons](X1,X2) = X2 [n__natsFrom](X) = 1 [s](X) = 2.X + 2 [tt] = 2 [U11#](X1,X2,X3,X4) = 2.X1 + 2.X2 + 1 [SPLITAT](X1,X2) = 2.X1 + 2 Problem 1: SCC Processor: -> Pairs: SPLITAT(s(N:S),cons(X:S,XS:S)) -> U11#(tt,N:S,X:S,activate(XS:S)) -> Rules: U11(tt,N:S,X:S,XS:S) -> U12(splitAt(activate(N:S),activate(XS:S)),activate(X:S)) U12(pair(YS:S,ZS:S),X:S) -> pair(cons(activate(X:S),YS:S),ZS:S) activate(n__natsFrom(X:S)) -> natsFrom(X:S) activate(X:S) -> X:S afterNth(N:S,XS:S) -> snd(splitAt(N:S,XS:S)) and(tt,X:S) -> activate(X:S) fst(pair(X:S,Y:S)) -> X:S head(cons(N:S,XS:S)) -> N:S natsFrom(N:S) -> cons(N:S,n__natsFrom(s(N:S))) natsFrom(X:S) -> n__natsFrom(X:S) sel(N:S,XS:S) -> head(afterNth(N:S,XS:S)) snd(pair(X:S,Y:S)) -> Y:S splitAt(0,XS:S) -> pair(nil,XS:S) splitAt(s(N:S),cons(X:S,XS:S)) -> U11(tt,N:S,X:S,activate(XS:S)) tail(cons(N:S,XS:S)) -> activate(XS:S) take(N:S,XS:S) -> fst(splitAt(N:S,XS:S)) ->Strongly Connected Components: There is no strongly connected component The problem is finite.