/export/starexec/sandbox/solver/bin/starexec_run_default /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR N V1 V2 X XS Y YS ZS) (STRATEGY CONTEXTSENSITIVE (U101 1) (U102 1) (U11 1) (U111 1) (U12 1) (U121 1) (U131 1) (U132 1) (U141 1) (U142 1) (U151 1) (U152 1) (U161 1) (U171 1) (U172 1) (U181 1) (U182 1) (U191 1) (U201 1) (U202 1) (U203 1) (U204 1) (U21 1) (U211 1) (U212 1) (U22 1) (U221 1) (U222 1) (U31 1) (U32 1) (U41 1) (U42 1) (U51 1) (U52 1) (U61 1) (U71 1) (U81 1) (U91 1) (afterNth 1 2) (fst 1) (head 1) (isLNat) (isNatural) (isPLNat) (natsFrom 1) (sel 1 2) (snd 1) (splitAt 1 2) (tail 1) (take 1 2) (0) (cons 1) (nil) (pair 1 2) (s 1) (tt) ) (RULES U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ) Problem 1: Dependency Pairs Processor: -> Pairs: U101#(tt,V2) -> U102#(isLNat(V2)) U101#(tt,V2) -> ISLNAT(V2) U11#(tt,N,XS) -> U12#(isLNat(XS),N,XS) U11#(tt,N,XS) -> ISLNAT(XS) U12#(tt,N,XS) -> SND(splitAt(N,XS)) U12#(tt,N,XS) -> SPLITAT(N,XS) U12#(tt,N,XS) -> N U12#(tt,N,XS) -> XS U131#(tt,V2) -> U132#(isLNat(V2)) U131#(tt,V2) -> ISLNAT(V2) U141#(tt,V2) -> U142#(isLNat(V2)) U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> U152#(isLNat(V2)) U151#(tt,V2) -> ISLNAT(V2) U161#(tt,N) -> N U171#(tt,N,XS) -> U172#(isLNat(XS),N,XS) U171#(tt,N,XS) -> ISLNAT(XS) U172#(tt,N,XS) -> AFTERNTH(N,XS) U172#(tt,N,XS) -> HEAD(afterNth(N,XS)) U172#(tt,N,XS) -> N U172#(tt,N,XS) -> XS U181#(tt,Y) -> U182#(isLNat(Y),Y) U181#(tt,Y) -> ISLNAT(Y) U182#(tt,Y) -> Y U191#(tt,XS) -> XS U201#(tt,N,X,XS) -> U202#(isNatural(X),N,X,XS) U201#(tt,N,X,XS) -> ISNATURAL(X) U202#(tt,N,X,XS) -> U203#(isLNat(XS),N,X,XS) U202#(tt,N,X,XS) -> ISLNAT(XS) U203#(tt,N,X,XS) -> U204#(splitAt(N,XS),X) U203#(tt,N,X,XS) -> SPLITAT(N,XS) U203#(tt,N,X,XS) -> N U203#(tt,N,X,XS) -> XS U204#(pair(YS,ZS),X) -> X U21#(tt,X,Y) -> U22#(isLNat(Y),X) U21#(tt,X,Y) -> ISLNAT(Y) U211#(tt,XS) -> U212#(isLNat(XS),XS) U211#(tt,XS) -> ISLNAT(XS) U212#(tt,XS) -> XS U22#(tt,X) -> X U221#(tt,N,XS) -> U222#(isLNat(XS),N,XS) U221#(tt,N,XS) -> ISLNAT(XS) U222#(tt,N,XS) -> FST(splitAt(N,XS)) U222#(tt,N,XS) -> SPLITAT(N,XS) U222#(tt,N,XS) -> N U222#(tt,N,XS) -> XS U31#(tt,N,XS) -> U32#(isLNat(XS),N) U31#(tt,N,XS) -> ISLNAT(XS) U32#(tt,N) -> N U41#(tt,V2) -> U42#(isLNat(V2)) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> U52#(isLNat(V2)) U51#(tt,V2) -> ISLNAT(V2) AFTERNTH(N,XS) -> U11#(isNatural(N),N,XS) AFTERNTH(N,XS) -> ISNATURAL(N) FST(pair(X,Y)) -> U21#(isLNat(X),X,Y) FST(pair(X,Y)) -> ISLNAT(X) HEAD(cons(N,XS)) -> U31#(isNatural(N),N,XS) HEAD(cons(N,XS)) -> ISNATURAL(N) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> U61#(isPLNat(V1)) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> U71#(isNatural(V1)) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> U81#(isPLNat(V1)) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> U91#(isLNat(V1)) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> U101#(isNatural(V1),V2) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> U111#(isLNat(V1)) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> U121#(isNatural(V1)) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) NATSFROM(N) -> U161#(isNatural(N),N) NATSFROM(N) -> ISNATURAL(N) SEL(N,XS) -> U171#(isNatural(N),N,XS) SEL(N,XS) -> ISNATURAL(N) SND(pair(X,Y)) -> U181#(isLNat(X),Y) SND(pair(X,Y)) -> ISLNAT(X) SPLITAT(0,XS) -> U191#(isLNat(XS),XS) SPLITAT(0,XS) -> ISLNAT(XS) SPLITAT(s(N),cons(X,XS)) -> U201#(isNatural(N),N,X,XS) SPLITAT(s(N),cons(X,XS)) -> ISNATURAL(N) TAIL(cons(N,XS)) -> U211#(isNatural(N),XS) TAIL(cons(N,XS)) -> ISNATURAL(N) TAKE(N,XS) -> U221#(isNatural(N),N,XS) TAKE(N,XS) -> ISNATURAL(N) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding Rules: natsFrom(s(N)) -> NATSFROM(s(N)) Problem 1: SCC Processor: -> Pairs: U101#(tt,V2) -> U102#(isLNat(V2)) U101#(tt,V2) -> ISLNAT(V2) U11#(tt,N,XS) -> U12#(isLNat(XS),N,XS) U11#(tt,N,XS) -> ISLNAT(XS) U12#(tt,N,XS) -> SND(splitAt(N,XS)) U12#(tt,N,XS) -> SPLITAT(N,XS) U12#(tt,N,XS) -> N U12#(tt,N,XS) -> XS U131#(tt,V2) -> U132#(isLNat(V2)) U131#(tt,V2) -> ISLNAT(V2) U141#(tt,V2) -> U142#(isLNat(V2)) U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> U152#(isLNat(V2)) U151#(tt,V2) -> ISLNAT(V2) U161#(tt,N) -> N U171#(tt,N,XS) -> U172#(isLNat(XS),N,XS) U171#(tt,N,XS) -> ISLNAT(XS) U172#(tt,N,XS) -> AFTERNTH(N,XS) U172#(tt,N,XS) -> HEAD(afterNth(N,XS)) U172#(tt,N,XS) -> N U172#(tt,N,XS) -> XS U181#(tt,Y) -> U182#(isLNat(Y),Y) U181#(tt,Y) -> ISLNAT(Y) U182#(tt,Y) -> Y U191#(tt,XS) -> XS U201#(tt,N,X,XS) -> U202#(isNatural(X),N,X,XS) U201#(tt,N,X,XS) -> ISNATURAL(X) U202#(tt,N,X,XS) -> U203#(isLNat(XS),N,X,XS) U202#(tt,N,X,XS) -> ISLNAT(XS) U203#(tt,N,X,XS) -> U204#(splitAt(N,XS),X) U203#(tt,N,X,XS) -> SPLITAT(N,XS) U203#(tt,N,X,XS) -> N U203#(tt,N,X,XS) -> XS U204#(pair(YS,ZS),X) -> X U21#(tt,X,Y) -> U22#(isLNat(Y),X) U21#(tt,X,Y) -> ISLNAT(Y) U211#(tt,XS) -> U212#(isLNat(XS),XS) U211#(tt,XS) -> ISLNAT(XS) U212#(tt,XS) -> XS U22#(tt,X) -> X U221#(tt,N,XS) -> U222#(isLNat(XS),N,XS) U221#(tt,N,XS) -> ISLNAT(XS) U222#(tt,N,XS) -> FST(splitAt(N,XS)) U222#(tt,N,XS) -> SPLITAT(N,XS) U222#(tt,N,XS) -> N U222#(tt,N,XS) -> XS U31#(tt,N,XS) -> U32#(isLNat(XS),N) U31#(tt,N,XS) -> ISLNAT(XS) U32#(tt,N) -> N U41#(tt,V2) -> U42#(isLNat(V2)) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> U52#(isLNat(V2)) U51#(tt,V2) -> ISLNAT(V2) AFTERNTH(N,XS) -> U11#(isNatural(N),N,XS) AFTERNTH(N,XS) -> ISNATURAL(N) FST(pair(X,Y)) -> U21#(isLNat(X),X,Y) FST(pair(X,Y)) -> ISLNAT(X) HEAD(cons(N,XS)) -> U31#(isNatural(N),N,XS) HEAD(cons(N,XS)) -> ISNATURAL(N) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> U61#(isPLNat(V1)) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> U71#(isNatural(V1)) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> U81#(isPLNat(V1)) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> U91#(isLNat(V1)) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> U101#(isNatural(V1),V2) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> U111#(isLNat(V1)) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> U121#(isNatural(V1)) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) NATSFROM(N) -> U161#(isNatural(N),N) NATSFROM(N) -> ISNATURAL(N) SEL(N,XS) -> U171#(isNatural(N),N,XS) SEL(N,XS) -> ISNATURAL(N) SND(pair(X,Y)) -> U181#(isLNat(X),Y) SND(pair(X,Y)) -> ISLNAT(X) SPLITAT(0,XS) -> U191#(isLNat(XS),XS) SPLITAT(0,XS) -> ISLNAT(XS) SPLITAT(s(N),cons(X,XS)) -> U201#(isNatural(N),N,X,XS) SPLITAT(s(N),cons(X,XS)) -> ISNATURAL(N) TAIL(cons(N,XS)) -> U211#(isNatural(N),XS) TAIL(cons(N,XS)) -> ISNATURAL(N) TAKE(N,XS) -> U221#(isNatural(N),N,XS) TAKE(N,XS) -> ISNATURAL(N) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: natsFrom(s(N)) -> NATSFROM(s(N)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U101#(tt,V2) -> ISLNAT(V2) U131#(tt,V2) -> ISLNAT(V2) U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> U101#(isNatural(V1),V2) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: U161#(tt,N) -> N NATSFROM(N) -> U161#(isNatural(N),N) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: natsFrom(s(N)) -> NATSFROM(s(N)) ->->Cycle: ->->-> Pairs: U201#(tt,N,X,XS) -> U202#(isNatural(X),N,X,XS) U202#(tt,N,X,XS) -> U203#(isLNat(XS),N,X,XS) U203#(tt,N,X,XS) -> SPLITAT(N,XS) SPLITAT(s(N),cons(X,XS)) -> U201#(isNatural(N),N,X,XS) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty The problem is decomposed in 3 subproblems. Problem 1.1: Reduction Pairs Processor: -> Pairs: U101#(tt,V2) -> ISLNAT(V2) U131#(tt,V2) -> ISLNAT(V2) U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> U101#(isNatural(V1),V2) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U111(tt) -> tt U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2) = X1 + 2.X2 + 1 [U102](X) = 2 [U111](X) = X + 2 [U121](X) = X + 1 [U131](X1,X2) = 2.X1 + 2.X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = X1 + 2.X2 [U142](X) = X [U151](X1,X2) = X1 + 1 [U152](X) = 2 [U41](X1,X2) = 2.X2 + 2 [U42](X) = X + 1 [U51](X1,X2) = X1 + X2 + 2 [U52](X) = 2 [U61](X) = X + 1 [U71](X) = 2 [U81](X) = 2.X + 1 [U91](X) = X + 2 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = 2.X [head](X) = 2.X + 2 [isLNat](X) = 2.X + 1 [isNatural](X) = 2.X + 2 [isPLNat](X) = 2.X [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = 2.X [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 [tail](X) = X + 1 [take](X1,X2) = 2.X1 + 2.X2 + 2 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = 2.X + 2 [tt] = 2 [U101#](X1,X2) = 2.X1 + 2.X2 + 2 [U131#](X1,X2) = X1 + 2.X2 + 2 [U141#](X1,X2) = X1 + 2.X2 [U151#](X1,X2) = 2.X1 + 2.X2 + 2 [U41#](X1,X2) = X1 + 2.X2 + 2 [U51#](X1,X2) = 2.X1 + 2.X2 + 2 [ISLNAT](X) = 2.X + 2 [ISNATURAL](X) = X + 2 [ISPLNAT](X) = 2.X + 2 Problem 1.1: SCC Processor: -> Pairs: U131#(tt,V2) -> ISLNAT(V2) U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> U101#(isNatural(V1),V2) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U131#(tt,V2) -> ISLNAT(V2) U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: Reduction Pairs Processor: -> Pairs: U131#(tt,V2) -> ISLNAT(V2) U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U111(tt) -> tt U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2) = X1 + 2.X2 + 2 [U102](X) = X + 1 [U111](X) = 2 [U121](X) = 2 [U131](X1,X2) = 2 [U132](X) = 2 [U141](X1,X2) = 2.X1 + 2.X2 + 2 [U142](X) = X + 2 [U151](X1,X2) = 2.X1 + 1 [U152](X) = 2 [U41](X1,X2) = X1 + 2.X2 + 2 [U42](X) = X + 2 [U51](X1,X2) = X1 + 2.X2 + 2 [U52](X) = X + 2 [U61](X) = X + 2 [U71](X) = X + 2 [U81](X) = 2 [U91](X) = 2.X + 1 [afterNth](X1,X2) = 2.X1 + X2 + 2 [fst](X) = X + 2 [head](X) = 2.X + 1 [isLNat](X) = 2.X + 1 [isNatural](X) = 2 [isPLNat](X) = 2.X + 2 [natsFrom](X) = X + 2 [sel](X1,X2) = 2.X1 + X2 + 2 [snd](X) = 2.X + 1 [splitAt](X1,X2) = 2.X1 + X2 + 2 [tail](X) = 2.X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [0] = 1 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = X [tt] = 2 [U131#](X1,X2) = 2.X1 + 2.X2 + 2 [U141#](X1,X2) = X1 + 2.X2 + 1 [U151#](X1,X2) = 2.X1 + 2.X2 + 1 [U41#](X1,X2) = 2.X1 + 2.X2 + 2 [U51#](X1,X2) = X1 + 2.X2 + 1 [ISLNAT](X) = 2.X + 2 [ISNATURAL](X) = 2.X + 2 [ISPLNAT](X) = 2.X + 2 Problem 1.1: SCC Processor: -> Pairs: U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> U131#(isNatural(V1),V2) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: Reduction Pairs Processor: -> Pairs: U141#(tt,V2) -> ISLNAT(V2) U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U111(tt) -> tt U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2) = X1 + 2.X2 + 2 [U102](X) = 2 [U111](X) = 2 [U121](X) = X [U131](X1,X2) = X1 [U132](X) = 2 [U141](X1,X2) = X1 + 2.X2 + 2 [U142](X) = 2 [U151](X1,X2) = 2.X1 + 2.X2 + 2 [U152](X) = X + 2 [U41](X1,X2) = X2 + 2 [U42](X) = 2 [U51](X1,X2) = 2.X1 + 2.X2 + 2 [U52](X) = X + 1 [U61](X) = X + 1 [U71](X) = 2.X [U81](X) = X + 1 [U91](X) = X + 1 [afterNth](X1,X2) = X1 + 2.X2 [fst](X) = X + 1 [head](X) = X + 2 [isLNat](X) = 2.X + 2 [isNatural](X) = 2 [isPLNat](X) = 2.X + 2 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 [snd](X) = 2.X + 1 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 [tail](X) = 2.X + 2 [take](X1,X2) = 2.X1 + X2 + 1 [0] = 2 [cons](X1,X2) = X1 + 2.X2 + 2 [nil] = 2 [pair](X1,X2) = X1 + 2.X2 + 2 [s](X) = 2.X [tt] = 2 [U141#](X1,X2) = X1 + 2.X2 + 2 [U151#](X1,X2) = 2.X1 + 2.X2 + 2 [U41#](X1,X2) = 2.X2 + 2 [U51#](X1,X2) = 2.X1 + 2.X2 + 2 [ISLNAT](X) = 2.X + 2 [ISNATURAL](X) = 2.X + 2 [ISPLNAT](X) = 2.X + 2 Problem 1.1: SCC Processor: -> Pairs: U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> U141#(isLNat(V1),V2) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: Reduction Pairs Processor: -> Pairs: U151#(tt,V2) -> ISLNAT(V2) U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U111(tt) -> tt U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2) = 2.X1 + 1 [U102](X) = 2 [U111](X) = 2 [U121](X) = 2.X + 1 [U131](X1,X2) = 2.X1 + X2 + 2 [U132](X) = 2 [U141](X1,X2) = X1 + 2 [U142](X) = 2 [U151](X1,X2) = 2.X1 + 2.X2 + 2 [U152](X) = X [U41](X1,X2) = 2.X2 + 2 [U42](X) = X + 1 [U51](X1,X2) = 2.X1 + 2.X2 + 2 [U52](X) = X + 2 [U61](X) = 2 [U71](X) = X [U81](X) = X [U91](X) = 2.X + 2 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = 2.X + 2 [head](X) = X + 2 [isLNat](X) = 2.X + 1 [isNatural](X) = 2.X + 1 [isPLNat](X) = 2.X + 1 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + X2 + 2 [snd](X) = X [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 [tail](X) = 2.X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 1 [pair](X1,X2) = 2.X1 + 2 [s](X) = 2.X + 1 [tt] = 2 [U151#](X1,X2) = X1 + 2.X2 + 2 [U41#](X1,X2) = 2.X1 + 2.X2 + 2 [U51#](X1,X2) = 2.X1 + 2.X2 + 1 [ISLNAT](X) = 2.X + 1 [ISNATURAL](X) = 2.X + 2 [ISPLNAT](X) = 2.X Problem 1.1: SCC Processor: -> Pairs: U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> U151#(isNatural(V1),V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: Reduction Pairs Processor: -> Pairs: U41#(tt,V2) -> ISLNAT(V2) U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U111(tt) -> tt U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2) = X1 [U102](X) = 2 [U111](X) = 2.X + 1 [U121](X) = 2.X + 2 [U131](X1,X2) = X1 [U132](X) = 2 [U141](X1,X2) = 2.X2 + 2 [U142](X) = X + 1 [U151](X1,X2) = 2.X1 [U152](X) = 2 [U41](X1,X2) = 2.X1 + 2.X2 + 2 [U42](X) = X + 2 [U51](X1,X2) = 2.X1 + 2.X2 + 1 [U52](X) = X + 2 [U61](X) = 2 [U71](X) = 2.X + 2 [U81](X) = X + 1 [U91](X) = 2.X + 1 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = 2.X + 1 [head](X) = 2.X + 1 [isLNat](X) = 2.X + 1 [isNatural](X) = 2.X + 1 [isPLNat](X) = 2.X + 2 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 [snd](X) = 2.X + 2 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 [tail](X) = 2.X + 1 [take](X1,X2) = 2.X1 + 2.X2 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 1 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = 2.X + 2 [tt] = 2 [U41#](X1,X2) = X1 + 2.X2 + 1 [U51#](X1,X2) = 2.X2 + 2 [ISLNAT](X) = 2.X + 2 [ISNATURAL](X) = 2.X + 1 [ISPLNAT](X) = X + 2 Problem 1.1: SCC Processor: -> Pairs: U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> U41#(isNatural(V1),V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: Reduction Pairs Processor: -> Pairs: U51#(tt,V2) -> ISLNAT(V2) ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U111(tt) -> tt U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2) = X1 + X2 + 2 [U102](X) = 2 [U111](X) = X + 1 [U121](X) = X [U131](X1,X2) = X1 + 2.X2 + 2 [U132](X) = X + 2 [U141](X1,X2) = X1 + X2 + 2 [U142](X) = 2 [U151](X1,X2) = X1 + 2.X2 + 1 [U152](X) = X [U41](X1,X2) = 2.X1 + 2.X2 + 1 [U42](X) = X + 2 [U51](X1,X2) = 2.X1 + 2.X2 [U52](X) = X + 2 [U61](X) = 2 [U71](X) = 2.X + 1 [U81](X) = 2 [U91](X) = 2.X + 2 [afterNth](X1,X2) = X1 + 2.X2 + 1 [fst](X) = 2.X + 2 [head](X) = 2.X + 2 [isLNat](X) = 2.X + 2 [isNatural](X) = X + 1 [isPLNat](X) = 2.X + 1 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = X [splitAt](X1,X2) = 2.X1 + 2.X2 + 1 [tail](X) = 2.X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [0] = 1 [cons](X1,X2) = 2.X1 + 2.X2 + 1 [nil] = 2 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = X [tt] = 2 [U51#](X1,X2) = 2.X1 + 2.X2 + 2 [ISLNAT](X) = 2.X + 2 [ISNATURAL](X) = 2.X [ISPLNAT](X) = X + 2 Problem 1.1: SCC Processor: -> Pairs: ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> U51#(isNatural(V1),V2) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) ->->-> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: SubNColl Processor: -> Pairs: ISLNAT(afterNth(V1,V2)) -> ISNATURAL(V1) ISLNAT(fst(V1)) -> ISPLNAT(V1) ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) ISLNAT(snd(V1)) -> ISPLNAT(V1) ISLNAT(tail(V1)) -> ISLNAT(V1) ISLNAT(take(V1,V2)) -> ISNATURAL(V1) ISLNAT(cons(V1,V2)) -> ISNATURAL(V1) ISNATURAL(head(V1)) -> ISLNAT(V1) ISNATURAL(sel(V1,V2)) -> ISNATURAL(V1) ISNATURAL(s(V1)) -> ISNATURAL(V1) ISPLNAT(splitAt(V1,V2)) -> ISNATURAL(V1) ISPLNAT(pair(V1,V2)) -> ISLNAT(V1) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Projection: pi(ISLNAT) = 1 pi(ISNATURAL) = 1 pi(ISPLNAT) = 1 Problem 1.1: Basic Processor: -> Pairs: Empty -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty -> Result: Set P is empty The problem is finite. Problem 1.2: SubNColl Processor: -> Pairs: U161#(tt,N) -> N NATSFROM(N) -> U161#(isNatural(N),N) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: natsFrom(s(N)) -> NATSFROM(s(N)) ->Projection: pi(U161#) = 2 pi(NATSFROM) = 1 Problem 1.2: SCC Processor: -> Pairs: U161#(tt,N) -> N NATSFROM(N) -> U161#(isNatural(N),N) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: SubNColl Processor: -> Pairs: U201#(tt,N,X,XS) -> U202#(isNatural(X),N,X,XS) U202#(tt,N,X,XS) -> U203#(isLNat(XS),N,X,XS) U203#(tt,N,X,XS) -> SPLITAT(N,XS) SPLITAT(s(N),cons(X,XS)) -> U201#(isNatural(N),N,X,XS) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Projection: pi(U201#) = 2 pi(U202#) = 2 pi(U203#) = 2 pi(SPLITAT) = 1 Problem 1.3: SCC Processor: -> Pairs: U201#(tt,N,X,XS) -> U202#(isNatural(X),N,X,XS) U202#(tt,N,X,XS) -> U203#(isLNat(XS),N,X,XS) U203#(tt,N,X,XS) -> SPLITAT(N,XS) -> Rules: U101(tt,V2) -> U102(isLNat(V2)) U102(tt) -> tt U11(tt,N,XS) -> U12(isLNat(XS),N,XS) U111(tt) -> tt U12(tt,N,XS) -> snd(splitAt(N,XS)) U121(tt) -> tt U131(tt,V2) -> U132(isLNat(V2)) U132(tt) -> tt U141(tt,V2) -> U142(isLNat(V2)) U142(tt) -> tt U151(tt,V2) -> U152(isLNat(V2)) U152(tt) -> tt U161(tt,N) -> cons(N,natsFrom(s(N))) U171(tt,N,XS) -> U172(isLNat(XS),N,XS) U172(tt,N,XS) -> head(afterNth(N,XS)) U181(tt,Y) -> U182(isLNat(Y),Y) U182(tt,Y) -> Y U191(tt,XS) -> pair(nil,XS) U201(tt,N,X,XS) -> U202(isNatural(X),N,X,XS) U202(tt,N,X,XS) -> U203(isLNat(XS),N,X,XS) U203(tt,N,X,XS) -> U204(splitAt(N,XS),X) U204(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U21(tt,X,Y) -> U22(isLNat(Y),X) U211(tt,XS) -> U212(isLNat(XS),XS) U212(tt,XS) -> XS U22(tt,X) -> X U221(tt,N,XS) -> U222(isLNat(XS),N,XS) U222(tt,N,XS) -> fst(splitAt(N,XS)) U31(tt,N,XS) -> U32(isLNat(XS),N) U32(tt,N) -> N U41(tt,V2) -> U42(isLNat(V2)) U42(tt) -> tt U51(tt,V2) -> U52(isLNat(V2)) U52(tt) -> tt U61(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt) -> tt afterNth(N,XS) -> U11(isNatural(N),N,XS) fst(pair(X,Y)) -> U21(isLNat(X),X,Y) head(cons(N,XS)) -> U31(isNatural(N),N,XS) isLNat(afterNth(V1,V2)) -> U41(isNatural(V1),V2) isLNat(fst(V1)) -> U61(isPLNat(V1)) isLNat(natsFrom(V1)) -> U71(isNatural(V1)) isLNat(snd(V1)) -> U81(isPLNat(V1)) isLNat(tail(V1)) -> U91(isLNat(V1)) isLNat(take(V1,V2)) -> U101(isNatural(V1),V2) isLNat(cons(V1,V2)) -> U51(isNatural(V1),V2) isLNat(nil) -> tt isNatural(head(V1)) -> U111(isLNat(V1)) isNatural(sel(V1,V2)) -> U131(isNatural(V1),V2) isNatural(0) -> tt isNatural(s(V1)) -> U121(isNatural(V1)) isPLNat(splitAt(V1,V2)) -> U151(isNatural(V1),V2) isPLNat(pair(V1,V2)) -> U141(isLNat(V1),V2) natsFrom(N) -> U161(isNatural(N),N) sel(N,XS) -> U171(isNatural(N),N,XS) snd(pair(X,Y)) -> U181(isLNat(X),Y) splitAt(0,XS) -> U191(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U201(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U211(isNatural(N),XS) take(N,XS) -> U221(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite.