/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) (U103 1) (U104 1) (U105 1) (U106 1) (U11 1) (U111 1) (U112 1) (U12 1) (U121 1) (U122 1) (U13 1) (U131 1) (U14 1) (U141 1) (U151 1) (U161 1) (U171 1) (U172 1) (U181 1) (U182 1) (U183 1) (U191 1) (U192 1) (U193 1) (U201 1) (U202 1) (U203 1) (U204 1) (U205 1) (U206 1) (U21 1) (U211 1) (U22 1) (U221 1) (U23 1) (U231 1) (U232 1) (U24 1) (U241 1) (U242 1) (U243 1) (U244 1) (U245 1) (U246 1) (U251 1) (U252 1) (U253 1) (U254 1) (U255 1) (U256 1) (U261 1) (U262 1) (U271 1) (U272 1) (U281 1) (U282 1) (U291 1) (U292 1) (U293 1) (U294 1) (U301 1) (U302 1) (U303 1) (U304 1) (U31 1) (U311 1) (U312 1) (U32 1) (U321 1) (U322 1) (U323 1) (U324 1) (U325 1) (U326 1) (U327 1) (U33 1) (U331 1) (U332 1) (U333 1) (U334 1) (U34 1) (U341 1) (U342 1) (U343 1) (U344 1) (U41 1) (U42 1) (U43 1) (U44 1) (U45 1) (U46 1) (U51 1) (U52 1) (U53 1) (U54 1) (U55 1) (U56 1) (U61 1) (U62 1) (U63 1) (U71 1) (U72 1) (U73 1) (U81 1) (U82 1) (U83 1) (U91 1) (U92 1) (U93 1) (afterNth 1 2) (fst 1) (head 1) (isLNat) (isLNatKind) (isNatural) (isNaturalKind) (isPLNat) (isPLNatKind) (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,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ) Problem 1: Dependency Pairs Processor: -> Pairs: U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) U101#(tt,V1,V2) -> ISNATURALKIND(V1) U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) U102#(tt,V1,V2) -> ISLNATKIND(V2) U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) U103#(tt,V1,V2) -> ISLNATKIND(V2) U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) U104#(tt,V1,V2) -> ISNATURAL(V1) U105#(tt,V2) -> U106#(isLNat(V2)) U105#(tt,V2) -> ISLNAT(V2) U11#(tt,N,XS) -> U12#(isNaturalKind(N),N,XS) U11#(tt,N,XS) -> ISNATURALKIND(N) U111#(tt,V2) -> U112#(isLNatKind(V2)) U111#(tt,V2) -> ISLNATKIND(V2) U12#(tt,N,XS) -> U13#(isLNat(XS),N,XS) U12#(tt,N,XS) -> ISLNAT(XS) U121#(tt,V2) -> U122#(isLNatKind(V2)) U121#(tt,V2) -> ISLNATKIND(V2) U13#(tt,N,XS) -> U14#(isLNatKind(XS),N,XS) U13#(tt,N,XS) -> ISLNATKIND(XS) U14#(tt,N,XS) -> SND(splitAt(N,XS)) U14#(tt,N,XS) -> SPLITAT(N,XS) U14#(tt,N,XS) -> N U14#(tt,N,XS) -> XS U171#(tt,V2) -> U172#(isLNatKind(V2)) U171#(tt,V2) -> ISLNATKIND(V2) U181#(tt,V1) -> U182#(isLNatKind(V1),V1) U181#(tt,V1) -> ISLNATKIND(V1) U182#(tt,V1) -> U183#(isLNat(V1)) U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U191#(tt,V1) -> ISNATURALKIND(V1) U192#(tt,V1) -> U193#(isNatural(V1)) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U201#(tt,V1,V2) -> ISNATURALKIND(V1) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U202#(tt,V1,V2) -> ISLNATKIND(V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> ISLNATKIND(V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> U206#(isLNat(V2)) U205#(tt,V2) -> ISLNAT(V2) U21#(tt,X,Y) -> U22#(isLNatKind(X),X,Y) U21#(tt,X,Y) -> ISLNATKIND(X) U22#(tt,X,Y) -> U23#(isLNat(Y),X,Y) U22#(tt,X,Y) -> ISLNAT(Y) U23#(tt,X,Y) -> U24#(isLNatKind(Y),X) U23#(tt,X,Y) -> ISLNATKIND(Y) U231#(tt,V2) -> U232#(isLNatKind(V2)) U231#(tt,V2) -> ISLNATKIND(V2) U24#(tt,X) -> X U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U241#(tt,V1,V2) -> ISLNATKIND(V1) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U242#(tt,V1,V2) -> ISLNATKIND(V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> ISLNATKIND(V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> U246#(isLNat(V2)) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U251#(tt,V1,V2) -> ISNATURALKIND(V1) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U252#(tt,V1,V2) -> ISLNATKIND(V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> ISLNATKIND(V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> U256#(isLNat(V2)) U255#(tt,V2) -> ISLNAT(V2) U261#(tt,V2) -> U262#(isLNatKind(V2)) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> U272#(isLNatKind(V2)) U271#(tt,V2) -> ISLNATKIND(V2) U281#(tt,N) -> U282#(isNaturalKind(N),N) U281#(tt,N) -> ISNATURALKIND(N) U282#(tt,N) -> N U291#(tt,N,XS) -> U292#(isNaturalKind(N),N,XS) U291#(tt,N,XS) -> ISNATURALKIND(N) U292#(tt,N,XS) -> U293#(isLNat(XS),N,XS) U292#(tt,N,XS) -> ISLNAT(XS) U293#(tt,N,XS) -> U294#(isLNatKind(XS),N,XS) U293#(tt,N,XS) -> ISLNATKIND(XS) U294#(tt,N,XS) -> AFTERNTH(N,XS) U294#(tt,N,XS) -> HEAD(afterNth(N,XS)) U294#(tt,N,XS) -> N U294#(tt,N,XS) -> XS U301#(tt,X,Y) -> U302#(isLNatKind(X),Y) U301#(tt,X,Y) -> ISLNATKIND(X) U302#(tt,Y) -> U303#(isLNat(Y),Y) U302#(tt,Y) -> ISLNAT(Y) U303#(tt,Y) -> U304#(isLNatKind(Y),Y) U303#(tt,Y) -> ISLNATKIND(Y) U304#(tt,Y) -> Y U31#(tt,N,XS) -> U32#(isNaturalKind(N),N,XS) U31#(tt,N,XS) -> ISNATURALKIND(N) U311#(tt,XS) -> U312#(isLNatKind(XS),XS) U311#(tt,XS) -> ISLNATKIND(XS) U312#(tt,XS) -> XS U32#(tt,N,XS) -> U33#(isLNat(XS),N,XS) U32#(tt,N,XS) -> ISLNAT(XS) U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) U321#(tt,N,X,XS) -> ISNATURALKIND(N) U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) U322#(tt,N,X,XS) -> ISNATURAL(X) U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) U323#(tt,N,X,XS) -> ISNATURALKIND(X) U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) U324#(tt,N,X,XS) -> ISLNAT(XS) U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) U325#(tt,N,X,XS) -> ISLNATKIND(XS) U326#(tt,N,X,XS) -> U327#(splitAt(N,XS),X) U326#(tt,N,X,XS) -> SPLITAT(N,XS) U326#(tt,N,X,XS) -> N U326#(tt,N,X,XS) -> XS U327#(pair(YS,ZS),X) -> X U33#(tt,N,XS) -> U34#(isLNatKind(XS),N) U33#(tt,N,XS) -> ISLNATKIND(XS) U331#(tt,N,XS) -> U332#(isNaturalKind(N),XS) U331#(tt,N,XS) -> ISNATURALKIND(N) U332#(tt,XS) -> U333#(isLNat(XS),XS) U332#(tt,XS) -> ISLNAT(XS) U333#(tt,XS) -> U334#(isLNatKind(XS),XS) U333#(tt,XS) -> ISLNATKIND(XS) U334#(tt,XS) -> XS U34#(tt,N) -> N U341#(tt,N,XS) -> U342#(isNaturalKind(N),N,XS) U341#(tt,N,XS) -> ISNATURALKIND(N) U342#(tt,N,XS) -> U343#(isLNat(XS),N,XS) U342#(tt,N,XS) -> ISLNAT(XS) U343#(tt,N,XS) -> U344#(isLNatKind(XS),N,XS) U343#(tt,N,XS) -> ISLNATKIND(XS) U344#(tt,N,XS) -> FST(splitAt(N,XS)) U344#(tt,N,XS) -> SPLITAT(N,XS) U344#(tt,N,XS) -> N U344#(tt,N,XS) -> XS U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U41#(tt,V1,V2) -> ISNATURALKIND(V1) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U42#(tt,V1,V2) -> ISLNATKIND(V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> ISLNATKIND(V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> U46#(isLNat(V2)) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U51#(tt,V1,V2) -> ISNATURALKIND(V1) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U52#(tt,V1,V2) -> ISLNATKIND(V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> ISLNATKIND(V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> U56#(isLNat(V2)) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U61#(tt,V1) -> ISPLNATKIND(V1) U62#(tt,V1) -> U63#(isPLNat(V1)) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U71#(tt,V1) -> ISNATURALKIND(V1) U72#(tt,V1) -> U73#(isNatural(V1)) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U81#(tt,V1) -> ISPLNATKIND(V1) U82#(tt,V1) -> U83#(isPLNat(V1)) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U91#(tt,V1) -> ISLNATKIND(V1) U92#(tt,V1) -> U93#(isLNat(V1)) U92#(tt,V1) -> ISLNAT(V1) 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#(isNaturalKind(V1),V1,V2) ISLNAT(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(fst(V1)) -> ISPLNATKIND(V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> ISPLNATKIND(V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(tail(V1)) -> ISLNATKIND(V1) ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) ISLNAT(take(V1,V2)) -> ISNATURALKIND(V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISLNAT(cons(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> U131#(isPLNatKind(V1)) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> U141#(isNaturalKind(V1)) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> U151#(isPLNatKind(V1)) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> U161#(isLNatKind(V1)) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(head(V1)) -> ISLNATKIND(V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISNATURAL(s(V1)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> U211#(isLNatKind(V1)) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> U221#(isNaturalKind(V1)) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> ISLNATKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) NATSFROM(N) -> U281#(isNatural(N),N) NATSFROM(N) -> ISNATURAL(N) SEL(N,XS) -> U291#(isNatural(N),N,XS) SEL(N,XS) -> ISNATURAL(N) SND(pair(X,Y)) -> U301#(isLNat(X),X,Y) SND(pair(X,Y)) -> ISLNAT(X) SPLITAT(0,XS) -> U311#(isLNat(XS),XS) SPLITAT(0,XS) -> ISLNAT(XS) SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) SPLITAT(s(N),cons(X,XS)) -> ISNATURAL(N) TAIL(cons(N,XS)) -> U331#(isNatural(N),N,XS) TAIL(cons(N,XS)) -> ISNATURAL(N) TAKE(N,XS) -> U341#(isNatural(N),N,XS) TAKE(N,XS) -> ISNATURAL(N) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding Rules: natsFrom(s(N)) -> NATSFROM(s(N)) Problem 1: SCC Processor: -> Pairs: U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) U101#(tt,V1,V2) -> ISNATURALKIND(V1) U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) U102#(tt,V1,V2) -> ISLNATKIND(V2) U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) U103#(tt,V1,V2) -> ISLNATKIND(V2) U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) U104#(tt,V1,V2) -> ISNATURAL(V1) U105#(tt,V2) -> U106#(isLNat(V2)) U105#(tt,V2) -> ISLNAT(V2) U11#(tt,N,XS) -> U12#(isNaturalKind(N),N,XS) U11#(tt,N,XS) -> ISNATURALKIND(N) U111#(tt,V2) -> U112#(isLNatKind(V2)) U111#(tt,V2) -> ISLNATKIND(V2) U12#(tt,N,XS) -> U13#(isLNat(XS),N,XS) U12#(tt,N,XS) -> ISLNAT(XS) U121#(tt,V2) -> U122#(isLNatKind(V2)) U121#(tt,V2) -> ISLNATKIND(V2) U13#(tt,N,XS) -> U14#(isLNatKind(XS),N,XS) U13#(tt,N,XS) -> ISLNATKIND(XS) U14#(tt,N,XS) -> SND(splitAt(N,XS)) U14#(tt,N,XS) -> SPLITAT(N,XS) U14#(tt,N,XS) -> N U14#(tt,N,XS) -> XS U171#(tt,V2) -> U172#(isLNatKind(V2)) U171#(tt,V2) -> ISLNATKIND(V2) U181#(tt,V1) -> U182#(isLNatKind(V1),V1) U181#(tt,V1) -> ISLNATKIND(V1) U182#(tt,V1) -> U183#(isLNat(V1)) U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U191#(tt,V1) -> ISNATURALKIND(V1) U192#(tt,V1) -> U193#(isNatural(V1)) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U201#(tt,V1,V2) -> ISNATURALKIND(V1) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U202#(tt,V1,V2) -> ISLNATKIND(V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> ISLNATKIND(V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> U206#(isLNat(V2)) U205#(tt,V2) -> ISLNAT(V2) U21#(tt,X,Y) -> U22#(isLNatKind(X),X,Y) U21#(tt,X,Y) -> ISLNATKIND(X) U22#(tt,X,Y) -> U23#(isLNat(Y),X,Y) U22#(tt,X,Y) -> ISLNAT(Y) U23#(tt,X,Y) -> U24#(isLNatKind(Y),X) U23#(tt,X,Y) -> ISLNATKIND(Y) U231#(tt,V2) -> U232#(isLNatKind(V2)) U231#(tt,V2) -> ISLNATKIND(V2) U24#(tt,X) -> X U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U241#(tt,V1,V2) -> ISLNATKIND(V1) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U242#(tt,V1,V2) -> ISLNATKIND(V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> ISLNATKIND(V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> U246#(isLNat(V2)) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U251#(tt,V1,V2) -> ISNATURALKIND(V1) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U252#(tt,V1,V2) -> ISLNATKIND(V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> ISLNATKIND(V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> U256#(isLNat(V2)) U255#(tt,V2) -> ISLNAT(V2) U261#(tt,V2) -> U262#(isLNatKind(V2)) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> U272#(isLNatKind(V2)) U271#(tt,V2) -> ISLNATKIND(V2) U281#(tt,N) -> U282#(isNaturalKind(N),N) U281#(tt,N) -> ISNATURALKIND(N) U282#(tt,N) -> N U291#(tt,N,XS) -> U292#(isNaturalKind(N),N,XS) U291#(tt,N,XS) -> ISNATURALKIND(N) U292#(tt,N,XS) -> U293#(isLNat(XS),N,XS) U292#(tt,N,XS) -> ISLNAT(XS) U293#(tt,N,XS) -> U294#(isLNatKind(XS),N,XS) U293#(tt,N,XS) -> ISLNATKIND(XS) U294#(tt,N,XS) -> AFTERNTH(N,XS) U294#(tt,N,XS) -> HEAD(afterNth(N,XS)) U294#(tt,N,XS) -> N U294#(tt,N,XS) -> XS U301#(tt,X,Y) -> U302#(isLNatKind(X),Y) U301#(tt,X,Y) -> ISLNATKIND(X) U302#(tt,Y) -> U303#(isLNat(Y),Y) U302#(tt,Y) -> ISLNAT(Y) U303#(tt,Y) -> U304#(isLNatKind(Y),Y) U303#(tt,Y) -> ISLNATKIND(Y) U304#(tt,Y) -> Y U31#(tt,N,XS) -> U32#(isNaturalKind(N),N,XS) U31#(tt,N,XS) -> ISNATURALKIND(N) U311#(tt,XS) -> U312#(isLNatKind(XS),XS) U311#(tt,XS) -> ISLNATKIND(XS) U312#(tt,XS) -> XS U32#(tt,N,XS) -> U33#(isLNat(XS),N,XS) U32#(tt,N,XS) -> ISLNAT(XS) U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) U321#(tt,N,X,XS) -> ISNATURALKIND(N) U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) U322#(tt,N,X,XS) -> ISNATURAL(X) U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) U323#(tt,N,X,XS) -> ISNATURALKIND(X) U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) U324#(tt,N,X,XS) -> ISLNAT(XS) U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) U325#(tt,N,X,XS) -> ISLNATKIND(XS) U326#(tt,N,X,XS) -> U327#(splitAt(N,XS),X) U326#(tt,N,X,XS) -> SPLITAT(N,XS) U326#(tt,N,X,XS) -> N U326#(tt,N,X,XS) -> XS U327#(pair(YS,ZS),X) -> X U33#(tt,N,XS) -> U34#(isLNatKind(XS),N) U33#(tt,N,XS) -> ISLNATKIND(XS) U331#(tt,N,XS) -> U332#(isNaturalKind(N),XS) U331#(tt,N,XS) -> ISNATURALKIND(N) U332#(tt,XS) -> U333#(isLNat(XS),XS) U332#(tt,XS) -> ISLNAT(XS) U333#(tt,XS) -> U334#(isLNatKind(XS),XS) U333#(tt,XS) -> ISLNATKIND(XS) U334#(tt,XS) -> XS U34#(tt,N) -> N U341#(tt,N,XS) -> U342#(isNaturalKind(N),N,XS) U341#(tt,N,XS) -> ISNATURALKIND(N) U342#(tt,N,XS) -> U343#(isLNat(XS),N,XS) U342#(tt,N,XS) -> ISLNAT(XS) U343#(tt,N,XS) -> U344#(isLNatKind(XS),N,XS) U343#(tt,N,XS) -> ISLNATKIND(XS) U344#(tt,N,XS) -> FST(splitAt(N,XS)) U344#(tt,N,XS) -> SPLITAT(N,XS) U344#(tt,N,XS) -> N U344#(tt,N,XS) -> XS U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U41#(tt,V1,V2) -> ISNATURALKIND(V1) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U42#(tt,V1,V2) -> ISLNATKIND(V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> ISLNATKIND(V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> U46#(isLNat(V2)) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U51#(tt,V1,V2) -> ISNATURALKIND(V1) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U52#(tt,V1,V2) -> ISLNATKIND(V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> ISLNATKIND(V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> U56#(isLNat(V2)) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U61#(tt,V1) -> ISPLNATKIND(V1) U62#(tt,V1) -> U63#(isPLNat(V1)) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U71#(tt,V1) -> ISNATURALKIND(V1) U72#(tt,V1) -> U73#(isNatural(V1)) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U81#(tt,V1) -> ISPLNATKIND(V1) U82#(tt,V1) -> U83#(isPLNat(V1)) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U91#(tt,V1) -> ISLNATKIND(V1) U92#(tt,V1) -> U93#(isLNat(V1)) U92#(tt,V1) -> ISLNAT(V1) 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#(isNaturalKind(V1),V1,V2) ISLNAT(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(fst(V1)) -> ISPLNATKIND(V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> ISPLNATKIND(V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(tail(V1)) -> ISLNATKIND(V1) ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) ISLNAT(take(V1,V2)) -> ISNATURALKIND(V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISLNAT(cons(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> U131#(isPLNatKind(V1)) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> U141#(isNaturalKind(V1)) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> U151#(isPLNatKind(V1)) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> U161#(isLNatKind(V1)) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(head(V1)) -> ISLNATKIND(V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISNATURAL(s(V1)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> U211#(isLNatKind(V1)) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> U221#(isNaturalKind(V1)) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> ISLNATKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) NATSFROM(N) -> U281#(isNatural(N),N) NATSFROM(N) -> ISNATURAL(N) SEL(N,XS) -> U291#(isNatural(N),N,XS) SEL(N,XS) -> ISNATURAL(N) SND(pair(X,Y)) -> U301#(isLNat(X),X,Y) SND(pair(X,Y)) -> ISLNAT(X) SPLITAT(0,XS) -> U311#(isLNat(XS),XS) SPLITAT(0,XS) -> ISLNAT(XS) SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) SPLITAT(s(N),cons(X,XS)) -> ISNATURAL(N) TAIL(cons(N,XS)) -> U331#(isNatural(N),N,XS) TAIL(cons(N,XS)) -> ISNATURAL(N) TAKE(N,XS) -> U341#(isNatural(N),N,XS) TAKE(N,XS) -> ISNATURAL(N) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: natsFrom(s(N)) -> NATSFROM(s(N)) ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U111#(tt,V2) -> ISLNATKIND(V2) U121#(tt,V2) -> ISLNATKIND(V2) U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) U104#(tt,V1,V2) -> ISNATURAL(V1) U105#(tt,V2) -> ISLNAT(V2) U181#(tt,V1) -> U182#(isLNatKind(V1),V1) U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: U281#(tt,N) -> U282#(isNaturalKind(N),N) U282#(tt,N) -> N NATSFROM(N) -> U281#(isNatural(N),N) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: natsFrom(s(N)) -> NATSFROM(s(N)) ->->Cycle: ->->-> Pairs: U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) U326#(tt,N,X,XS) -> SPLITAT(N,XS) SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty The problem is decomposed in 4 subproblems. Problem 1.1: Reduction Pairs Processor: -> Pairs: U111#(tt,V2) -> ISLNATKIND(V2) U121#(tt,V2) -> ISLNATKIND(V2) U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U111](X1,X2) = 2.X1 [U112](X) = 2 [U121](X1,X2) = 2.X1 + X2 + 2 [U122](X) = 2 [U131](X) = 2.X [U141](X) = X [U151](X) = 2.X + 2 [U161](X) = 2.X [U171](X1,X2) = 2.X2 + 2 [U172](X) = 2 [U211](X) = 2.X + 2 [U221](X) = 2.X + 2 [U231](X1,X2) = 2.X1 + 2.X2 + 2 [U232](X) = X + 2 [U261](X1,X2) = 2 [U262](X) = 2 [U271](X1,X2) = 2 [U272](X) = 2 [afterNth](X1,X2) = 2.X1 + 2.X2 + 1 [fst](X) = X + 1 [head](X) = 2.X + 2 [isLNatKind](X) = 2.X + 2 [isNaturalKind](X) = 2.X + 2 [isPLNatKind](X) = 2 [natsFrom](X) = 2.X [sel](X1,X2) = 2.X1 + X2 + 2 [snd](X) = X + 2 [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] = 2 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = 2.X + 2 [tt] = 2 [U111#](X1,X2) = 2.X1 + 2.X2 [U121#](X1,X2) = X1 + 2.X2 + 2 [U171#](X1,X2) = 2.X1 + 2.X2 + 2 [U231#](X1,X2) = 2.X2 + 2 [U261#](X1,X2) = X1 + 2.X2 + 1 [U271#](X1,X2) = 2.X1 + 2.X2 + 2 [ISLNATKIND](X) = 2.X + 2 [ISNATURALKIND](X) = 2.X [ISPLNATKIND](X) = 2.X + 2 Problem 1.1: SCC Processor: -> Pairs: U121#(tt,V2) -> ISLNATKIND(V2) U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U121#(tt,V2) -> ISLNATKIND(V2) U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: Reduction Pairs Processor: -> Pairs: U121#(tt,V2) -> ISLNATKIND(V2) U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U111](X1,X2) = 2.X2 + 2 [U112](X) = X + 2 [U121](X1,X2) = 2.X1 [U122](X) = 2 [U131](X) = X + 2 [U141](X) = X + 1 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = X1 + 2.X2 + 2 [U172](X) = 2 [U211](X) = 2 [U221](X) = 2 [U231](X1,X2) = X1 [U232](X) = 2 [U261](X1,X2) = 2.X2 + 2 [U262](X) = X + 2 [U271](X1,X2) = X1 + 2.X2 + 2 [U272](X) = X + 2 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = X + 2 [head](X) = 2.X + 1 [isLNatKind](X) = 2.X [isNaturalKind](X) = 2 [isPLNatKind](X) = X + 2 [natsFrom](X) = X + 2 [sel](X1,X2) = 2.X1 + X2 + 2 [snd](X) = X + 1 [splitAt](X1,X2) = X1 + 2.X2 + 2 [tail](X) = 2.X + 2 [take](X1,X2) = 2.X1 + X2 + 2 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 1 [pair](X1,X2) = X1 + 2.X2 + 2 [s](X) = X [tt] = 2 [U121#](X1,X2) = 2.X1 + 2.X2 + 2 [U171#](X1,X2) = 2.X1 + 2.X2 [U231#](X1,X2) = 2.X1 + 2.X2 + 2 [U261#](X1,X2) = X1 + 2.X2 + 2 [U271#](X1,X2) = 2.X1 + 2.X2 + 2 [ISLNATKIND](X) = 2.X + 2 [ISNATURALKIND](X) = 2.X + 2 [ISPLNATKIND](X) = 2.X + 2 Problem 1.1: SCC Processor: -> Pairs: U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.1: SubNColl Processor: -> Pairs: U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Projection: pi(U171#) = 2 pi(U231#) = 2 pi(U261#) = 2 pi(U271#) = 2 pi(ISLNATKIND) = 1 pi(ISNATURALKIND) = 1 pi(ISPLNATKIND) = 1 Problem 1.1: SCC Processor: -> Pairs: U171#(tt,V2) -> ISLNATKIND(V2) U231#(tt,V2) -> ISLNATKIND(V2) U261#(tt,V2) -> ISLNATKIND(V2) U271#(tt,V2) -> ISLNATKIND(V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Reduction Pairs Processor: -> Pairs: U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) U104#(tt,V1,V2) -> ISNATURAL(V1) U105#(tt,V2) -> ISLNAT(V2) U181#(tt,V1) -> U182#(isLNatKind(V1),V1) U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U102](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U103](X1,X2,X3) = X1 + X3 + 2 [U104](X1,X2,X3) = X1 + 2 [U105](X1,X2) = 2 [U106](X) = 2 [U111](X1,X2) = X1 + 2 [U112](X) = 2 [U121](X1,X2) = X1 + X2 + 2 [U122](X) = X + 2 [U131](X) = 2 [U141](X) = X + 2 [U151](X) = X + 2 [U161](X) = X + 2 [U171](X1,X2) = X1 + X2 + 2 [U172](X) = X + 2 [U181](X1,X2) = 2.X1 + X2 + 2 [U182](X1,X2) = X1 + 2 [U183](X) = 2 [U191](X1,X2) = 2.X1 + 2.X2 + 2 [U192](X1,X2) = 2.X1 + 2 [U193](X) = 2 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U202](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U203](X1,X2,X3) = X1 + X3 + 2 [U204](X1,X2,X3) = X1 + 2 [U205](X1,X2) = 2 [U206](X) = 2 [U211](X) = X + 2 [U221](X) = 2.X + 1 [U231](X1,X2) = X1 + 2 [U232](X) = 2 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U242](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U243](X1,X2,X3) = 2.X1 + 2 [U244](X1,X2,X3) = 2 [U245](X1,X2) = 2 [U246](X) = 2 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U252](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U253](X1,X2,X3) = 2.X3 + 2 [U254](X1,X2,X3) = 2.X1 [U255](X1,X2) = 2 [U256](X) = 2 [U261](X1,X2) = X1 + 2.X2 + 2 [U262](X) = 2 [U271](X1,X2) = 2.X1 + 2.X2 + 2 [U272](X) = 2 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U43](X1,X2,X3) = X1 + X3 + 2 [U44](X1,X2,X3) = X1 + 2 [U45](X1,X2) = 2 [U46](X) = 2 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U52](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U53](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U54](X1,X2,X3) = 2.X1 + 2.X2 [U55](X1,X2) = X1 + 2 [U56](X) = 2 [U61](X1,X2) = X1 + 2.X2 + 2 [U62](X1,X2) = X1 + 2 [U63](X) = 2 [U71](X1,X2) = 2.X1 + 2 [U72](X1,X2) = 2 [U73](X) = 2 [U81](X1,X2) = X1 + 2.X2 + 2 [U82](X1,X2) = X1 + 2 [U83](X) = 2 [U91](X1,X2) = 2.X1 + 2.X2 [U92](X1,X2) = 2.X2 + 2 [U93](X) = X [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = 2.X + 2 [head](X) = 2.X + 2 [isLNat](X) = 2.X + 2 [isLNatKind](X) = X + 1 [isNatural](X) = 2.X + 2 [isNaturalKind](X) = X + 1 [isPLNat](X) = 2.X + 2 [isPLNatKind](X) = 2.X + 1 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = 2.X + 2 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 [tail](X) = 2.X + 2 [take](X1,X2) = 2.X1 + X2 + 2 [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 [U101#](X1,X2,X3) = X1 + X2 + X3 + 1 [U102#](X1,X2,X3) = X2 + X3 + 2 [U103#](X1,X2,X3) = X2 + X3 + 2 [U104#](X1,X2,X3) = X2 + X3 + 2 [U105#](X1,X2) = X2 + 2 [U181#](X1,X2) = 2.X2 + 2 [U182#](X1,X2) = X1 + X2 + 1 [U191#](X1,X2) = 2.X2 + 1 [U192#](X1,X2) = X1 + X2 [U201#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U202#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 [U203#](X1,X2,X3) = X1 + X2 + X3 + 2 [U204#](X1,X2,X3) = X2 + X3 + 2 [U205#](X1,X2) = X2 + 2 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U244#](X1,X2,X3) = X2 + 2.X3 + 2 [U245#](X1,X2) = 2.X2 + 2 [U251#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U252#](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U253#](X1,X2,X3) = X1 + X2 + X3 + 2 [U254#](X1,X2,X3) = X2 + X3 + 2 [U255#](X1,X2) = X2 + 2 [U41#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 [U43#](X1,X2,X3) = X1 + X2 + X3 + 2 [U44#](X1,X2,X3) = X2 + X3 + 2 [U45#](X1,X2) = X2 + 2 [U51#](X1,X2,X3) = X1 + X2 + 2.X3 [U52#](X1,X2,X3) = X2 + 2.X3 + 2 [U53#](X1,X2,X3) = X2 + 2.X3 + 2 [U54#](X1,X2,X3) = X2 + 2.X3 + 2 [U55#](X1,X2) = 2.X2 + 2 [U61#](X1,X2) = 2.X2 [U62#](X1,X2) = 2.X2 [U71#](X1,X2) = X1 + X2 + 2 [U72#](X1,X2) = X2 + 2 [U81#](X1,X2) = 2.X2 + 2 [U82#](X1,X2) = 2.X2 + 1 [U91#](X1,X2) = X1 + X2 + 2 [U92#](X1,X2) = X2 + 2 [ISLNAT](X) = X + 2 [ISNATURAL](X) = X + 2 [ISPLNAT](X) = 2.X Problem 1.2: SCC Processor: -> Pairs: U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) U104#(tt,V1,V2) -> ISNATURAL(V1) U105#(tt,V2) -> ISLNAT(V2) U181#(tt,V1) -> U182#(isLNatKind(V1),V1) U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U181#(tt,V1) -> U182#(isLNatKind(V1),V1) U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: Reduction Pairs Processor: -> Pairs: U181#(tt,V1) -> U182#(isLNatKind(V1),V1) U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U102](X1,X2,X3) = 2.X3 + 2 [U103](X1,X2,X3) = 2.X3 + 2 [U104](X1,X2,X3) = X1 + 2 [U105](X1,X2) = 2 [U106](X) = 2 [U111](X1,X2) = 2.X1 + 2.X2 [U112](X) = X + 1 [U121](X1,X2) = X1 + 2.X2 + 2 [U122](X) = 2 [U131](X) = 2.X + 1 [U141](X) = X + 1 [U151](X) = X + 2 [U161](X) = 2.X + 2 [U171](X1,X2) = 2.X1 + 2.X2 [U172](X) = X + 2 [U181](X1,X2) = X1 + 2.X2 + 2 [U182](X1,X2) = X1 + 1 [U183](X) = 2 [U191](X1,X2) = 2.X2 + 2 [U192](X1,X2) = 2.X2 + 2 [U193](X) = X [U201](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U202](X1,X2,X3) = 2.X3 + 2 [U203](X1,X2,X3) = X1 [U204](X1,X2,X3) = 2 [U205](X1,X2) = 2 [U206](X) = 2 [U211](X) = X [U221](X) = 2 [U231](X1,X2) = 2.X1 + 2.X2 + 2 [U232](X) = X + 2 [U241](X1,X2,X3) = 2.X1 + 2.X3 [U242](X1,X2,X3) = 2.X3 + 2 [U243](X1,X2,X3) = X1 + 2 [U244](X1,X2,X3) = 2 [U245](X1,X2) = 2 [U246](X) = 2 [U251](X1,X2,X3) = X1 + 2.X3 + 2 [U252](X1,X2,X3) = 2.X3 + 2 [U253](X1,X2,X3) = X1 + 2 [U254](X1,X2,X3) = 2 [U255](X1,X2) = 2 [U256](X) = 2 [U261](X1,X2) = 2.X1 + 2.X2 + 2 [U262](X) = 2 [U271](X1,X2) = 2 [U272](X) = 2 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U42](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U43](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U44](X1,X2,X3) = X1 + 2.X2 + 2 [U45](X1,X2) = X1 + 2 [U46](X) = 2 [U51](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U52](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U53](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U54](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U55](X1,X2) = X1 + 2.X2 [U56](X) = X [U61](X1,X2) = 2.X1 + 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2) = X1 + 2.X2 [U72](X1,X2) = X1 [U73](X) = 2 [U81](X1,X2) = 2.X1 + 2 [U82](X1,X2) = 2 [U83](X) = 2 [U91](X1,X2) = X1 + 2.X2 [U92](X1,X2) = X1 + 1 [U93](X) = 2 [afterNth](X1,X2) = 2.X1 + X2 + 2 [fst](X) = 2.X + 2 [head](X) = 2.X + 2 [isLNat](X) = 2.X + 2 [isLNatKind](X) = 2.X [isNatural](X) = 2.X + 2 [isNaturalKind](X) = 2.X + 2 [isPLNat](X) = 2.X + 2 [isPLNatKind](X) = 2.X + 1 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = 2.X + 2 [splitAt](X1,X2) = 2.X1 + 2.X2 + 1 [tail](X) = 2.X + 1 [take](X1,X2) = 2.X1 + 2.X2 + 2 [0] = 0 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = X [tt] = 2 [U181#](X1,X2) = X1 + 2.X2 + 2 [U182#](X1,X2) = 2.X2 + 2 [U191#](X1,X2) = 2.X2 + 1 [U192#](X1,X2) = 2.X2 + 1 [U201#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U202#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U203#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U204#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U205#](X1,X2) = 2.X2 + 2 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U245#](X1,X2) = 2.X2 + 2 [U251#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U252#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U253#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U254#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U255#](X1,X2) = 2.X2 + 2 [U41#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U45#](X1,X2) = 2.X2 + 2 [U51#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U52#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U55#](X1,X2) = X1 + 2.X2 [U61#](X1,X2) = X1 + 2.X2 + 2 [U62#](X1,X2) = 2.X2 + 2 [U71#](X1,X2) = X1 + 2.X2 + 2 [U72#](X1,X2) = 2.X2 + 2 [U81#](X1,X2) = X1 + 2.X2 + 1 [U82#](X1,X2) = 2.X2 + 2 [U91#](X1,X2) = 2.X2 + 2 [U92#](X1,X2) = 2.X2 + 2 [ISLNAT](X) = 2.X + 2 [ISNATURAL](X) = 2.X + 1 [ISPLNAT](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U182#(tt,V1) -> ISLNAT(V1) U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: Reduction Pairs Processor: -> Pairs: U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U102](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U103](X1,X2,X3) = 2.X1 + 2 [U104](X1,X2,X3) = 2 [U105](X1,X2) = 2 [U106](X) = 2 [U111](X1,X2) = 2.X2 + 1 [U112](X) = X [U121](X1,X2) = 2.X2 + 2 [U122](X) = 2.X + 2 [U131](X) = X + 2 [U141](X) = 2 [U151](X) = X + 2 [U161](X) = 2.X + 1 [U171](X1,X2) = X1 + X2 [U172](X) = X [U181](X1,X2) = 2.X1 + 2.X2 + 2 [U182](X1,X2) = 2.X1 + 2 [U183](X) = 2 [U191](X1,X2) = 2.X1 + 2.X2 + 2 [U192](X1,X2) = X1 + 2.X2 + 2 [U193](X) = X + 2 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U203](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U204](X1,X2,X3) = 2.X1 + 2.X2 + 2 [U205](X1,X2) = 2 [U206](X) = 2 [U211](X) = 2 [U221](X) = 2 [U231](X1,X2) = 2 [U232](X) = 2 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U242](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U243](X1,X2,X3) = 2.X3 + 2 [U244](X1,X2,X3) = 2.X1 + 2 [U245](X1,X2) = 2 [U246](X) = 2 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U252](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U253](X1,X2,X3) = X1 + 2.X2 + X3 + 2 [U254](X1,X2,X3) = X1 + 2.X2 + 2 [U255](X1,X2) = X1 [U256](X) = 2 [U261](X1,X2) = 2.X1 + 2.X2 + 2 [U262](X) = 2.X [U271](X1,X2) = X1 + 2 [U272](X) = 2 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U43](X1,X2,X3) = 2.X3 + 2 [U44](X1,X2,X3) = 2.X3 + 2 [U45](X1,X2) = 2.X2 + 2 [U46](X) = X [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U53](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U54](X1,X2,X3) = 2.X1 + 2.X2 + 1 [U55](X1,X2) = X1 + 2 [U56](X) = 2 [U61](X1,X2) = X1 + 2.X2 + 2 [U62](X1,X2) = X1 + 2 [U63](X) = 2 [U71](X1,X2) = X1 + 2.X2 + 2 [U72](X1,X2) = X1 + 2.X2 + 2 [U73](X) = X + 2 [U81](X1,X2) = X1 + 2.X2 + 1 [U82](X1,X2) = 2.X2 + 2 [U83](X) = 2 [U91](X1,X2) = X1 + 2.X2 + 1 [U92](X1,X2) = 2.X1 + 2 [U93](X) = 2 [afterNth](X1,X2) = X1 + 2.X2 + 2 [fst](X) = 2.X + 2 [head](X) = 2.X + 2 [isLNat](X) = 2.X + 2 [isLNatKind](X) = X [isNatural](X) = 2.X + 2 [isNaturalKind](X) = 2 [isPLNat](X) = 2.X + 2 [isPLNatKind](X) = 2.X [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + X2 + 2 [snd](X) = 2.X + 2 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 [tail](X) = 2.X + 2 [take](X1,X2) = X2 + 2 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = X + 2 [tt] = 2 [U191#](X1,X2) = 2.X1 + 2.X2 + 2 [U192#](X1,X2) = X1 + 2.X2 + 2 [U201#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U202#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U203#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U204#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U205#](X1,X2) = X1 + 2.X2 [U241#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U245#](X1,X2) = X1 + 2.X2 [U251#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U252#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U253#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U254#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U255#](X1,X2) = X1 + 2.X2 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U45#](X1,X2) = 2.X2 + 2 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U52#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U55#](X1,X2) = 2.X2 + 2 [U61#](X1,X2) = X1 + 2.X2 + 2 [U62#](X1,X2) = 2.X2 + 2 [U71#](X1,X2) = 2.X1 + 2.X2 + 2 [U72#](X1,X2) = 2.X1 + 2.X2 [U81#](X1,X2) = X1 + 2.X2 [U82#](X1,X2) = 2.X2 + 2 [U91#](X1,X2) = 2.X1 + 2.X2 + 2 [U92#](X1,X2) = 2.X2 + 2 [ISLNAT](X) = 2.X + 2 [ISNATURAL](X) = 2.X + 2 [ISPLNAT](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U192#(tt,V1) -> ISNATURAL(V1) U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: Reduction Pairs Processor: -> Pairs: U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = X1 + 2.X2 + 2 [U102](X1,X2,X3) = 2.X1 + 2 [U103](X1,X2,X3) = 2 [U104](X1,X2,X3) = 2 [U105](X1,X2) = 2 [U106](X) = 2 [U111](X1,X2) = 2.X1 + 2.X2 + 2 [U112](X) = X + 2 [U121](X1,X2) = 2.X1 + 2.X2 + 2 [U122](X) = X + 2 [U131](X) = 2 [U141](X) = 2 [U151](X) = 2 [U161](X) = X [U171](X1,X2) = 2.X1 + 2 [U172](X) = 2 [U181](X1,X2) = X1 + 2 [U182](X1,X2) = 2 [U183](X) = 2 [U191](X1,X2) = 2.X1 + 2.X2 + 2 [U192](X1,X2) = 2.X1 + 2 [U193](X) = 2 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U202](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U203](X1,X2,X3) = X1 + 2 [U204](X1,X2,X3) = 2 [U205](X1,X2) = 2 [U206](X) = 2 [U211](X) = X + 2 [U221](X) = X + 2 [U231](X1,X2) = X1 + 2.X2 + 2 [U232](X) = 2 [U241](X1,X2,X3) = X1 + 2.X3 + 2 [U242](X1,X2,X3) = 2.X3 + 2 [U243](X1,X2,X3) = 2.X3 + 2 [U244](X1,X2,X3) = X1 [U245](X1,X2) = 2 [U246](X) = 2 [U251](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U252](X1,X2,X3) = X1 + 2.X3 + 2 [U253](X1,X2,X3) = X1 + 2 [U254](X1,X2,X3) = 2 [U255](X1,X2) = 2 [U256](X) = 2 [U261](X1,X2) = 2 [U262](X) = 2 [U271](X1,X2) = 2 [U272](X) = 2 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U43](X1,X2,X3) = X2 + 2.X3 + 2 [U44](X1,X2,X3) = X1 + X2 + 1 [U45](X1,X2) = 2 [U46](X) = 2 [U51](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U52](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U53](X1,X2,X3) = X1 + 2 [U54](X1,X2,X3) = 2 [U55](X1,X2) = 2 [U56](X) = 2 [U61](X1,X2) = 2.X1 + 2.X2 + 2 [U62](X1,X2) = 2.X1 + 2.X2 + 2 [U63](X) = 2.X + 2 [U71](X1,X2) = 2.X1 + 2.X2 + 2 [U72](X1,X2) = 2.X1 + 2 [U73](X) = 2 [U81](X1,X2) = 2.X1 + 2 [U82](X1,X2) = 2.X1 + 1 [U83](X) = 2 [U91](X1,X2) = X1 + 2.X2 + 2 [U92](X1,X2) = X1 + 2 [U93](X) = 2 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = 2.X + 2 [head](X) = 2.X + 2 [isLNat](X) = 2.X + 2 [isLNatKind](X) = 2.X + 1 [isNatural](X) = 2.X + 2 [isNaturalKind](X) = X + 1 [isPLNat](X) = X + 2 [isPLNatKind](X) = 2 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = 2.X + 2 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 [tail](X) = 2.X + 1 [take](X1,X2) = 2.X1 + 2 [0] = 1 [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 [U201#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 [U202#](X1,X2,X3) = X2 + 2.X3 + 2 [U203#](X1,X2,X3) = X2 + 2.X3 + 2 [U204#](X1,X2,X3) = X2 + 2.X3 + 2 [U205#](X1,X2) = 2.X2 + 2 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U245#](X1,X2) = X1 + 2.X2 [U251#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U252#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 [U253#](X1,X2,X3) = X2 + 2.X3 + 2 [U254#](X1,X2,X3) = X2 + 2.X3 + 2 [U255#](X1,X2) = 2.X2 + 2 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U43#](X1,X2,X3) = X2 + 2.X3 + 2 [U44#](X1,X2,X3) = X2 + 2.X3 [U45#](X1,X2) = 2.X2 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U52#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U55#](X1,X2) = X1 + 2.X2 [U61#](X1,X2) = 2.X1 + 2.X2 [U62#](X1,X2) = 2.X1 + 2.X2 [U71#](X1,X2) = X1 + 2.X2 + 2 [U72#](X1,X2) = X1 + X2 + 2 [U81#](X1,X2) = X1 + 2.X2 + 2 [U82#](X1,X2) = 2.X1 + 2.X2 [U91#](X1,X2) = 2.X2 + 2 [U92#](X1,X2) = 2.X2 [ISLNAT](X) = 2.X [ISNATURAL](X) = X [ISPLNAT](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) U204#(tt,V1,V2) -> ISNATURAL(V1) U205#(tt,V2) -> ISLNAT(V2) U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U254#(tt,V1,V2) -> ISNATURAL(V1) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U44#(tt,V1,V2) -> ISNATURAL(V1) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U54#(tt,V1,V2) -> ISNATURAL(V1) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) U72#(tt,V1) -> ISNATURAL(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: Reduction Pairs Processor: -> Pairs: U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U102](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U103](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U104](X1,X2,X3) = X1 + 2.X2 [U105](X1,X2) = X1 + 2 [U106](X) = 2 [U111](X1,X2) = 2.X1 + 2.X2 + 2 [U112](X) = X + 2 [U121](X1,X2) = 2.X1 + 2.X2 + 2 [U122](X) = X + 2 [U131](X) = X + 2 [U141](X) = X + 1 [U151](X) = X + 1 [U161](X) = X [U171](X1,X2) = 2.X1 + 2.X2 + 2 [U172](X) = X [U181](X1,X2) = 2.X2 + 2 [U182](X1,X2) = 2.X2 + 2 [U183](X) = 2 [U191](X1,X2) = X1 + 2.X2 + 2 [U192](X1,X2) = 2.X1 + 2.X2 [U193](X) = X + 2 [U201](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U203](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U204](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U205](X1,X2) = X1 + 2.X2 + 2 [U206](X) = X + 1 [U211](X) = 2 [U221](X) = 2 [U231](X1,X2) = 2 [U232](X) = 2 [U241](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U242](X1,X2,X3) = X1 + 2.X3 + 2 [U243](X1,X2,X3) = 2.X3 + 2 [U244](X1,X2,X3) = X1 [U245](X1,X2) = 2 [U246](X) = 2 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U252](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U253](X1,X2,X3) = X1 + 2.X2 + 2 [U254](X1,X2,X3) = 2.X2 + 2 [U255](X1,X2) = X1 + 2 [U256](X) = 2 [U261](X1,X2) = 2 [U262](X) = 2 [U271](X1,X2) = 2 [U272](X) = 2 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U43](X1,X2,X3) = X1 + 2.X2 + 2 [U44](X1,X2,X3) = 2.X2 + 2 [U45](X1,X2) = X1 + 2 [U46](X) = 2 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U53](X1,X2,X3) = X1 + 2.X2 [U54](X1,X2,X3) = 2.X2 + 2 [U55](X1,X2) = X1 + 2 [U56](X) = 2 [U61](X1,X2) = 2.X1 + 2.X2 + 2 [U62](X1,X2) = X1 + 2.X2 + 2 [U63](X) = X + 2 [U71](X1,X2) = 2.X2 + 2 [U72](X1,X2) = 2.X2 + 2 [U73](X) = X + 2 [U81](X1,X2) = 2.X1 + 2.X2 + 2 [U82](X1,X2) = X1 + 2.X2 + 2 [U83](X) = X + 2 [U91](X1,X2) = 2.X2 + 2 [U92](X1,X2) = 2.X2 + 2 [U93](X) = X [afterNth](X1,X2) = X1 + 2.X2 + 2 [fst](X) = 2.X + 2 [head](X) = 2.X + 1 [isLNat](X) = 2.X + 2 [isLNatKind](X) = 2.X + 2 [isNatural](X) = 2.X [isNaturalKind](X) = 2 [isPLNat](X) = 2.X + 2 [isPLNatKind](X) = 2 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + X2 + 2 [snd](X) = X + 2 [splitAt](X1,X2) = 2.X1 + X2 + 2 [tail](X) = X [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.X2 + 2 [s](X) = 2.X + 2 [tt] = 2 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U245#](X1,X2) = 2.X2 + 2 [U251#](X1,X2,X3) = 2.X1 + 2.X3 + 1 [U252#](X1,X2,X3) = 2.X1 + 2.X3 + 1 [U253#](X1,X2,X3) = 2.X3 + 2 [U254#](X1,X2,X3) = 2.X3 + 2 [U255#](X1,X2) = 2.X2 + 2 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U45#](X1,X2) = 2.X2 + 2 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U55#](X1,X2) = X1 + 2.X2 + 2 [U61#](X1,X2) = 2.X2 + 2 [U62#](X1,X2) = 2.X2 + 2 [U81#](X1,X2) = 2.X1 + 2.X2 + 2 [U82#](X1,X2) = 2.X1 + 2.X2 + 2 [U91#](X1,X2) = 2.X2 + 2 [U92#](X1,X2) = 2.X2 + 2 [ISLNAT](X) = 2.X + 2 [ISPLNAT](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) U244#(tt,V1,V2) -> ISLNAT(V1) U245#(tt,V2) -> ISLNAT(V2) U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: Reduction Pairs Processor: -> Pairs: U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = X1 + 2 [U102](X1,X2,X3) = 2 [U103](X1,X2,X3) = 2 [U104](X1,X2,X3) = X1 [U105](X1,X2) = 2 [U106](X) = 2 [U111](X1,X2) = 2 [U112](X) = 2 [U121](X1,X2) = 2 [U122](X) = 2 [U131](X) = 2 [U141](X) = 2 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = 2 [U172](X) = X [U181](X1,X2) = X1 + 2 [U182](X1,X2) = X1 + 2 [U183](X) = 2 [U191](X1,X2) = 2.X1 [U192](X1,X2) = X1 [U193](X) = 2 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U203](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U204](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U205](X1,X2) = 2.X2 + 2 [U206](X) = X [U211](X) = X [U221](X) = 2 [U231](X1,X2) = X1 [U232](X) = 2 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U242](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U243](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U244](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U245](X1,X2) = X1 + 2.X2 [U246](X) = X [U251](X1,X2,X3) = X1 + 2.X3 + 2 [U252](X1,X2,X3) = X1 + 2.X3 + 2 [U253](X1,X2,X3) = X1 + X3 + 2 [U254](X1,X2,X3) = 2 [U255](X1,X2) = 2 [U256](X) = 2 [U261](X1,X2) = 2.X1 + X2 [U262](X) = 2.X [U271](X1,X2) = X1 + 2.X2 + 2 [U272](X) = X + 2 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U43](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U44](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U45](X1,X2) = X1 + 2.X2 + 1 [U46](X) = X + 1 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U53](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U54](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U55](X1,X2) = X1 + 2.X2 + 2 [U56](X) = X + 1 [U61](X1,X2) = 2.X1 + 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2) = 2.X1 + 2.X2 [U72](X1,X2) = 2.X1 + 2.X2 [U73](X) = X + 2 [U81](X1,X2) = X1 + 2.X2 + 2 [U82](X1,X2) = X1 + 2 [U83](X) = 2 [U91](X1,X2) = 2.X1 + 2 [U92](X1,X2) = 2 [U93](X) = 2 [afterNth](X1,X2) = 2.X1 + X2 + 2 [fst](X) = 2.X + 2 [head](X) = 2 [isLNat](X) = 2.X + 2 [isLNatKind](X) = 2 [isNatural](X) = 2.X [isNaturalKind](X) = 2 [isPLNat](X) = 2.X + 2 [isPLNatKind](X) = 2.X [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = 2.X + 2 [splitAt](X1,X2) = X2 + 2 [tail](X) = X + 2 [take](X1,X2) = 2 [0] = 1 [cons](X1,X2) = X1 + 2.X2 + 2 [nil] = 2 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = 2.X + 2 [tt] = 2 [U251#](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U252#](X1,X2,X3) = 2.X1 + 2.X3 + 1 [U253#](X1,X2,X3) = 2.X1 + 2.X3 + 1 [U254#](X1,X2,X3) = 2.X1 + 2.X3 + 1 [U255#](X1,X2) = 2.X2 + 2 [U41#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U44#](X1,X2,X3) = X1 + 2.X2 + 2.X3 [U45#](X1,X2) = X1 + 2.X2 + 2 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U53#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U54#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U55#](X1,X2) = X1 + 2.X2 + 2 [U61#](X1,X2) = X1 + 2.X2 + 2 [U62#](X1,X2) = 2.X2 + 2 [U81#](X1,X2) = X1 + 2.X2 + 2 [U82#](X1,X2) = 2.X2 + 2 [U91#](X1,X2) = 2.X1 + 2.X2 + 2 [U92#](X1,X2) = 2.X1 + 2.X2 + 1 [ISLNAT](X) = 2.X + 2 [ISPLNAT](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) U255#(tt,V2) -> ISLNAT(V2) U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) U62#(tt,V1) -> ISPLNAT(V1) U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) U82#(tt,V1) -> ISPLNAT(V1) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: Reduction Pairs Processor: -> Pairs: U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U102](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U103](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U104](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U105](X1,X2) = X1 + 2.X2 + 1 [U106](X) = X + 1 [U111](X1,X2) = 2.X2 + 2 [U112](X) = 2.X + 2 [U121](X1,X2) = 2.X2 + 2 [U122](X) = 2.X + 1 [U131](X) = 2 [U141](X) = 2 [U151](X) = X [U161](X) = X + 1 [U171](X1,X2) = X1 + 2.X2 [U172](X) = 2.X + 1 [U181](X1,X2) = 2.X1 + 2.X2 + 2 [U182](X1,X2) = 2.X2 + 2 [U183](X) = X [U191](X1,X2) = 2.X1 + 2.X2 [U192](X1,X2) = X1 + 2.X2 + 1 [U193](X) = X + 2 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U203](X1,X2,X3) = X1 + 2.X2 + X3 + 2 [U204](X1,X2,X3) = 2.X2 + X3 + 2 [U205](X1,X2) = X1 + 2 [U206](X) = 2 [U211](X) = 2 [U221](X) = X [U231](X1,X2) = 2 [U232](X) = 2 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U242](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U243](X1,X2,X3) = X1 + X3 + 2 [U244](X1,X2,X3) = X1 + 2 [U245](X1,X2) = 2 [U246](X) = 2 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U252](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U253](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U254](X1,X2,X3) = 2.X1 + 2.X2 + 2 [U255](X1,X2) = X1 + 2 [U256](X) = 2 [U261](X1,X2) = 2.X1 + 2.X2 + 2 [U262](X) = X + 1 [U271](X1,X2) = 2.X2 + 2 [U272](X) = 2 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U43](X1,X2,X3) = X1 + X2 + X3 + 2 [U44](X1,X2,X3) = X1 + X2 + 2 [U45](X1,X2) = 2 [U46](X) = 2 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U53](X1,X2,X3) = 2.X1 + 2.X2 + 2 [U54](X1,X2,X3) = 2.X2 + 2 [U55](X1,X2) = X1 + 2 [U56](X) = 2 [U61](X1,X2) = X1 + 2.X2 + 1 [U62](X1,X2) = 2.X2 + 2 [U63](X) = X [U71](X1,X2) = 2.X1 + 2.X2 + 2 [U72](X1,X2) = X1 + 2.X2 [U73](X) = X + 2 [U81](X1,X2) = X1 + 2.X2 [U82](X1,X2) = 2.X2 + 2 [U83](X) = X [U91](X1,X2) = 2.X1 + 2.X2 + 2 [U92](X1,X2) = X1 + X2 + 2 [U93](X) = 2 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = 2.X + 2 [head](X) = 2.X + 2 [isLNat](X) = 2.X + 2 [isLNatKind](X) = X [isNatural](X) = 2.X [isNaturalKind](X) = 2 [isPLNat](X) = 2.X + 2 [isPLNatKind](X) = 2.X + 2 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = 2.X + 2 [splitAt](X1,X2) = X1 + 2.X2 + 2 [tail](X) = 2.X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [0] = 2 [cons](X1,X2) = X1 + 2.X2 + 2 [nil] = 2 [pair](X1,X2) = 2.X1 + X2 + 2 [s](X) = 2.X + 2 [tt] = 2 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U45#](X1,X2) = X1 + 2.X2 + 2 [U51#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U52#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U55#](X1,X2) = X1 + 2.X2 + 1 [U91#](X1,X2) = X1 + 2.X2 + 2 [U92#](X1,X2) = 2.X2 + 2 [ISLNAT](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) U45#(tt,V2) -> ISLNAT(V2) U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: Reduction Pairs Processor: -> Pairs: U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U131(tt) -> tt U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U211(tt) -> tt U221(tt) -> tt U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(tt) -> tt isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2 [U102](X1,X2,X3) = 2.X1 + 2 [U103](X1,X2,X3) = 2.X1 + 2 [U104](X1,X2,X3) = 2.X1 + 2 [U105](X1,X2) = 2 [U106](X) = 2 [U111](X1,X2) = 2 [U112](X) = X [U121](X1,X2) = 2 [U122](X) = X [U131](X) = 2 [U141](X) = 2 [U151](X) = 2 [U161](X) = 2 [U171](X1,X2) = 2 [U172](X) = X [U181](X1,X2) = 2.X1 + 2 [U182](X1,X2) = 2.X1 + 2 [U183](X) = 2 [U191](X1,X2) = 2.X1 + 2.X2 + 2 [U192](X1,X2) = 2.X1 + 2 [U193](X) = 2 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U202](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U203](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U204](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U205](X1,X2) = 2.X2 + 2 [U206](X) = 2 [U211](X) = 2 [U221](X) = X + 2 [U231](X1,X2) = X1 + 2.X2 + 2 [U232](X) = 2.X [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U242](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U243](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U244](X1,X2,X3) = 2.X2 + X3 + 2 [U245](X1,X2) = X1 + X2 [U246](X) = 2 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U252](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U253](X1,X2,X3) = 2.X1 + X2 + 2.X3 [U254](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U255](X1,X2) = 2.X2 + 2 [U256](X) = X [U261](X1,X2) = X1 + 2.X2 + 2 [U262](X) = X + 1 [U271](X1,X2) = 2.X1 + 2.X2 + 2 [U272](X) = X [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U43](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U44](X1,X2,X3) = 2.X1 + X3 + 2 [U45](X1,X2) = X2 + 2 [U46](X) = 2 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U53](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U54](X1,X2,X3) = 2.X3 + 2 [U55](X1,X2) = 2 [U56](X) = 2 [U61](X1,X2) = 2 [U62](X1,X2) = 2 [U63](X) = 2 [U71](X1,X2) = 2.X1 + 2.X2 + 2 [U72](X1,X2) = 2.X1 + 2 [U73](X) = 2 [U81](X1,X2) = 2 [U82](X1,X2) = 2 [U83](X) = 2 [U91](X1,X2) = 2.X1 + 2.X2 + 1 [U92](X1,X2) = 2.X1 + 2.X2 + 1 [U93](X) = X + 2 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 [fst](X) = 2 [head](X) = 2.X + 2 [isLNat](X) = 2.X + 2 [isLNatKind](X) = 2 [isNatural](X) = 2.X + 2 [isNaturalKind](X) = X + 2 [isPLNat](X) = 2.X + 2 [isPLNatKind](X) = 2.X + 2 [natsFrom](X) = 2.X + 2 [sel](X1,X2) = 2.X1 + 2.X2 + 2 [snd](X) = 2 [splitAt](X1,X2) = 2.X1 + 2.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] = 1 [pair](X1,X2) = 2.X1 + 2.X2 + 2 [s](X) = 2.X + 2 [tt] = 2 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U52#](X1,X2,X3) = 2.X1 + 2.X3 [U53#](X1,X2,X3) = X1 + 2.X3 + 2 [U54#](X1,X2,X3) = X1 + 2.X3 + 2 [U55#](X1,X2) = 2.X2 + 2 [U91#](X1,X2) = 2.X1 + 2.X2 + 2 [U92#](X1,X2) = X1 + 2.X2 + 2 [ISLNAT](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) U55#(tt,V2) -> ISLNAT(V2) U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) ->->-> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) ->->-> Unhiding rules: Empty Problem 1.2: SubNColl Processor: -> Pairs: U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Projection: pi(U91#) = 2 pi(U92#) = 2 pi(ISLNAT) = 1 Problem 1.2: SCC Processor: -> Pairs: U91#(tt,V1) -> U92#(isLNatKind(V1),V1) U92#(tt,V1) -> ISLNAT(V1) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(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: U281#(tt,N) -> U282#(isNaturalKind(N),N) U282#(tt,N) -> N NATSFROM(N) -> U281#(isNatural(N),N) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: natsFrom(s(N)) -> NATSFROM(s(N)) ->Projection: pi(U281#) = 2 pi(U282#) = 2 pi(NATSFROM) = 1 Problem 1.3: SCC Processor: -> Pairs: U281#(tt,N) -> U282#(isNaturalKind(N),N) U282#(tt,N) -> N NATSFROM(N) -> U281#(isNatural(N),N) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: SubNColl Processor: -> Pairs: U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) U326#(tt,N,X,XS) -> SPLITAT(N,XS) SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Projection: pi(U321#) = 2 pi(U322#) = 2 pi(U323#) = 2 pi(U324#) = 2 pi(U325#) = 2 pi(U326#) = 2 pi(SPLITAT) = 1 Problem 1.4: SCC Processor: -> Pairs: U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) U326#(tt,N,X,XS) -> SPLITAT(N,XS) -> Rules: U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNatural(V1),V2) U105(tt,V2) -> U106(isLNat(V2)) U106(tt) -> tt U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) U111(tt,V2) -> U112(isLNatKind(V2)) U112(tt) -> tt U12(tt,N,XS) -> U13(isLNat(XS),N,XS) U121(tt,V2) -> U122(isLNatKind(V2)) U122(tt) -> tt U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) U131(tt) -> tt U14(tt,N,XS) -> snd(splitAt(N,XS)) U141(tt) -> tt U151(tt) -> tt U161(tt) -> tt U171(tt,V2) -> U172(isLNatKind(V2)) U172(tt) -> tt U181(tt,V1) -> U182(isLNatKind(V1),V1) U182(tt,V1) -> U183(isLNat(V1)) U183(tt) -> tt U191(tt,V1) -> U192(isNaturalKind(V1),V1) U192(tt,V1) -> U193(isNatural(V1)) U193(tt) -> tt U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) U204(tt,V1,V2) -> U205(isNatural(V1),V2) U205(tt,V2) -> U206(isLNat(V2)) U206(tt) -> tt U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) U211(tt) -> tt U22(tt,X,Y) -> U23(isLNat(Y),X,Y) U221(tt) -> tt U23(tt,X,Y) -> U24(isLNatKind(Y),X) U231(tt,V2) -> U232(isLNatKind(V2)) U232(tt) -> tt U24(tt,X) -> X U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) U244(tt,V1,V2) -> U245(isLNat(V1),V2) U245(tt,V2) -> U246(isLNat(V2)) U246(tt) -> tt U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) U254(tt,V1,V2) -> U255(isNatural(V1),V2) U255(tt,V2) -> U256(isLNat(V2)) U256(tt) -> tt U261(tt,V2) -> U262(isLNatKind(V2)) U262(tt) -> tt U271(tt,V2) -> U272(isLNatKind(V2)) U272(tt) -> tt U281(tt,N) -> U282(isNaturalKind(N),N) U282(tt,N) -> cons(N,natsFrom(s(N))) U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) U292(tt,N,XS) -> U293(isLNat(XS),N,XS) U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) U294(tt,N,XS) -> head(afterNth(N,XS)) U301(tt,X,Y) -> U302(isLNatKind(X),Y) U302(tt,Y) -> U303(isLNat(Y),Y) U303(tt,Y) -> U304(isLNatKind(Y),Y) U304(tt,Y) -> Y U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) U311(tt,XS) -> U312(isLNatKind(XS),XS) U312(tt,XS) -> pair(nil,XS) U32(tt,N,XS) -> U33(isLNat(XS),N,XS) U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) U33(tt,N,XS) -> U34(isLNatKind(XS),N) U331(tt,N,XS) -> U332(isNaturalKind(N),XS) U332(tt,XS) -> U333(isLNat(XS),XS) U333(tt,XS) -> U334(isLNatKind(XS),XS) U334(tt,XS) -> XS U34(tt,N) -> N U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) U342(tt,N,XS) -> U343(isLNat(XS),N,XS) U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) U344(tt,N,XS) -> fst(splitAt(N,XS)) U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNatural(V1),V2) U45(tt,V2) -> U46(isLNat(V2)) U46(tt) -> tt U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) U54(tt,V1,V2) -> U55(isNatural(V1),V2) U55(tt,V2) -> U56(isLNat(V2)) U56(tt) -> tt U61(tt,V1) -> U62(isPLNatKind(V1),V1) U62(tt,V1) -> U63(isPLNat(V1)) U63(tt) -> tt U71(tt,V1) -> U72(isNaturalKind(V1),V1) U72(tt,V1) -> U73(isNatural(V1)) U73(tt) -> tt U81(tt,V1) -> U82(isPLNatKind(V1),V1) U82(tt,V1) -> U83(isPLNat(V1)) U83(tt) -> tt U91(tt,V1) -> U92(isLNatKind(V1),V1) U92(tt,V1) -> U93(isLNat(V1)) U93(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(isNaturalKind(V1),V1,V2) isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) isLNat(nil) -> tt isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) isLNatKind(nil) -> tt isNatural(head(V1)) -> U181(isLNatKind(V1),V1) isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) isNatural(0) -> tt isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) isNaturalKind(0) -> tt isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) natsFrom(N) -> U281(isNatural(N),N) sel(N,XS) -> U291(isNatural(N),N,XS) snd(pair(X,Y)) -> U301(isLNat(X),X,Y) splitAt(0,XS) -> U311(isLNat(XS),XS) splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) tail(cons(N,XS)) -> U331(isNatural(N),N,XS) take(N,XS) -> U341(isNatural(N),N,XS) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite.