8.64/8.67 YES 8.64/8.67 8.64/8.67 Problem 1: 8.64/8.67 8.64/8.67 (VAR N V1 V2 X XS Y YS ZS) 8.64/8.67 (STRATEGY CONTEXTSENSITIVE 8.64/8.67 (U101 1) 8.64/8.67 (U102 1) 8.64/8.67 (U103 1) 8.64/8.67 (U104 1) 8.64/8.67 (U105 1) 8.64/8.67 (U106 1) 8.64/8.67 (U11 1) 8.64/8.67 (U111 1) 8.64/8.67 (U112 1) 8.64/8.67 (U12 1) 8.64/8.67 (U121 1) 8.64/8.67 (U122 1) 8.64/8.67 (U13 1) 8.64/8.67 (U131 1) 8.64/8.67 (U14 1) 8.64/8.67 (U141 1) 8.64/8.67 (U151 1) 8.64/8.67 (U161 1) 8.64/8.67 (U171 1) 8.64/8.67 (U172 1) 8.64/8.67 (U181 1) 8.64/8.67 (U182 1) 8.64/8.67 (U183 1) 8.64/8.67 (U191 1) 8.64/8.67 (U192 1) 8.64/8.67 (U193 1) 8.64/8.67 (U201 1) 8.64/8.67 (U202 1) 8.64/8.67 (U203 1) 8.64/8.67 (U204 1) 8.64/8.67 (U205 1) 8.64/8.67 (U206 1) 8.64/8.67 (U21 1) 8.64/8.67 (U211 1) 8.64/8.67 (U22 1) 8.64/8.67 (U221 1) 8.64/8.67 (U23 1) 8.64/8.67 (U231 1) 8.64/8.67 (U232 1) 8.64/8.67 (U24 1) 8.64/8.67 (U241 1) 8.64/8.67 (U242 1) 8.64/8.67 (U243 1) 8.64/8.67 (U244 1) 8.64/8.67 (U245 1) 8.64/8.67 (U246 1) 8.64/8.67 (U251 1) 8.64/8.67 (U252 1) 8.64/8.67 (U253 1) 8.64/8.67 (U254 1) 8.64/8.67 (U255 1) 8.64/8.67 (U256 1) 8.64/8.67 (U261 1) 8.64/8.67 (U262 1) 8.64/8.67 (U271 1) 8.64/8.67 (U272 1) 8.64/8.67 (U281 1) 8.64/8.67 (U282 1) 8.64/8.67 (U291 1) 8.64/8.67 (U292 1) 8.64/8.67 (U293 1) 8.64/8.67 (U294 1) 8.64/8.67 (U301 1) 8.64/8.67 (U302 1) 8.64/8.67 (U303 1) 8.64/8.67 (U304 1) 8.64/8.67 (U31 1) 8.64/8.67 (U311 1) 8.64/8.67 (U312 1) 8.64/8.67 (U32 1) 8.64/8.67 (U321 1) 8.64/8.67 (U322 1) 8.64/8.67 (U323 1) 8.64/8.67 (U324 1) 8.64/8.67 (U325 1) 8.64/8.67 (U326 1) 8.64/8.67 (U327 1) 8.64/8.67 (U33 1) 8.64/8.67 (U331 1) 8.64/8.67 (U332 1) 8.64/8.67 (U333 1) 8.64/8.67 (U334 1) 8.64/8.67 (U34 1) 8.64/8.67 (U341 1) 8.64/8.67 (U342 1) 8.64/8.67 (U343 1) 8.64/8.67 (U344 1) 8.64/8.67 (U41 1) 8.64/8.67 (U42 1) 8.64/8.67 (U43 1) 8.64/8.67 (U44 1) 8.64/8.67 (U45 1) 8.64/8.67 (U46 1) 8.64/8.67 (U51 1) 8.64/8.67 (U52 1) 8.64/8.67 (U53 1) 8.64/8.67 (U54 1) 8.64/8.67 (U55 1) 8.64/8.67 (U56 1) 8.64/8.67 (U61 1) 8.64/8.67 (U62 1) 8.64/8.67 (U63 1) 8.64/8.67 (U71 1) 8.64/8.67 (U72 1) 8.64/8.67 (U73 1) 8.64/8.67 (U81 1) 8.64/8.67 (U82 1) 8.64/8.67 (U83 1) 8.64/8.67 (U91 1) 8.64/8.67 (U92 1) 8.64/8.67 (U93 1) 8.64/8.67 (afterNth 1 2) 8.64/8.67 (fst 1) 8.64/8.67 (head 1) 8.64/8.67 (isLNat) 8.64/8.67 (isLNatKind) 8.64/8.67 (isNatural) 8.64/8.67 (isNaturalKind) 8.64/8.67 (isPLNat) 8.64/8.67 (isPLNatKind) 8.64/8.67 (natsFrom 1) 8.64/8.67 (sel 1 2) 8.64/8.67 (snd 1) 8.64/8.67 (splitAt 1 2) 8.64/8.67 (tail 1) 8.64/8.67 (take 1 2) 8.64/8.67 (0) 8.64/8.67 (cons 1) 8.64/8.67 (nil) 8.64/8.67 (pair 1 2) 8.64/8.67 (s 1) 8.64/8.67 (tt) 8.64/8.67 ) 8.64/8.67 (RULES 8.64/8.67 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.67 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.67 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.67 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.67 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.67 U106(tt) -> tt 8.64/8.67 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.67 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.67 U112(tt) -> tt 8.64/8.67 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.67 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.67 U122(tt) -> tt 8.64/8.67 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.67 U131(tt) -> tt 8.64/8.67 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.67 U141(tt) -> tt 8.64/8.67 U151(tt) -> tt 8.64/8.67 U161(tt) -> tt 8.64/8.67 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.67 U172(tt) -> tt 8.64/8.67 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.67 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.67 U183(tt) -> tt 8.64/8.67 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.67 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.67 U193(tt) -> tt 8.64/8.67 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.67 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.67 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.67 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.67 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.67 U206(tt) -> tt 8.64/8.67 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.67 U211(tt) -> tt 8.64/8.67 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.67 U221(tt) -> tt 8.64/8.67 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.67 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.67 U232(tt) -> tt 8.64/8.67 U24(tt,X) -> X 8.64/8.67 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.67 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.67 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.67 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.67 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.67 U246(tt) -> tt 8.64/8.67 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.67 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.67 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.67 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.67 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.67 U256(tt) -> tt 8.64/8.67 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.67 U262(tt) -> tt 8.64/8.67 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.67 U272(tt) -> tt 8.64/8.67 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.67 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.67 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.67 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.67 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.67 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.67 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.67 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.67 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.67 U304(tt,Y) -> Y 8.64/8.67 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.67 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.67 U312(tt,XS) -> pair(nil,XS) 8.64/8.67 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.67 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.67 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.67 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.67 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.67 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.67 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.67 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.67 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.67 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.67 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.67 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.67 U334(tt,XS) -> XS 8.64/8.67 U34(tt,N) -> N 8.64/8.67 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.67 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.67 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.67 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.67 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.67 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.67 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.67 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.67 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.67 U46(tt) -> tt 8.64/8.67 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.67 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.67 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.67 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.67 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.67 U56(tt) -> tt 8.64/8.67 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.67 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.67 U63(tt) -> tt 8.64/8.67 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.67 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.67 U73(tt) -> tt 8.64/8.67 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.67 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.67 U83(tt) -> tt 8.64/8.67 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.67 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.67 U93(tt) -> tt 8.64/8.67 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.67 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.67 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.67 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.67 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.67 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.67 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.67 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.67 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.67 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.67 isLNat(nil) -> tt 8.64/8.67 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.67 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.67 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.67 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.67 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.67 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.67 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.67 isLNatKind(nil) -> tt 8.64/8.67 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.67 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.67 isNatural(0) -> tt 8.64/8.67 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.67 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.67 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.67 isNaturalKind(0) -> tt 8.64/8.67 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.67 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.67 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.67 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.67 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.67 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.67 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.67 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.67 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.67 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.67 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.67 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.67 ) 8.64/8.67 8.64/8.67 Problem 1: 8.64/8.67 8.64/8.67 Dependency Pairs Processor: 8.64/8.67 -> Pairs: 8.64/8.67 U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) 8.64/8.67 U101#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.67 U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) 8.64/8.67 U102#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) 8.64/8.67 U103#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) 8.64/8.67 U104#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.67 U105#(tt,V2) -> U106#(isLNat(V2)) 8.64/8.67 U105#(tt,V2) -> ISLNAT(V2) 8.64/8.67 U11#(tt,N,XS) -> U12#(isNaturalKind(N),N,XS) 8.64/8.67 U11#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.67 U111#(tt,V2) -> U112#(isLNatKind(V2)) 8.64/8.67 U111#(tt,V2) -> ISLNATKIND(V2) 8.64/8.67 U12#(tt,N,XS) -> U13#(isLNat(XS),N,XS) 8.64/8.67 U12#(tt,N,XS) -> ISLNAT(XS) 8.64/8.67 U121#(tt,V2) -> U122#(isLNatKind(V2)) 8.64/8.67 U121#(tt,V2) -> ISLNATKIND(V2) 8.64/8.67 U13#(tt,N,XS) -> U14#(isLNatKind(XS),N,XS) 8.64/8.67 U13#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.67 U14#(tt,N,XS) -> SND(splitAt(N,XS)) 8.64/8.67 U14#(tt,N,XS) -> SPLITAT(N,XS) 8.64/8.67 U14#(tt,N,XS) -> N 8.64/8.67 U14#(tt,N,XS) -> XS 8.64/8.67 U171#(tt,V2) -> U172#(isLNatKind(V2)) 8.64/8.67 U171#(tt,V2) -> ISLNATKIND(V2) 8.64/8.67 U181#(tt,V1) -> U182#(isLNatKind(V1),V1) 8.64/8.67 U181#(tt,V1) -> ISLNATKIND(V1) 8.64/8.67 U182#(tt,V1) -> U183#(isLNat(V1)) 8.64/8.67 U182#(tt,V1) -> ISLNAT(V1) 8.64/8.67 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.64/8.67 U191#(tt,V1) -> ISNATURALKIND(V1) 8.64/8.67 U192#(tt,V1) -> U193#(isNatural(V1)) 8.64/8.67 U192#(tt,V1) -> ISNATURAL(V1) 8.64/8.67 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.64/8.67 U201#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.67 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.64/8.67 U202#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.64/8.67 U203#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.64/8.67 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.67 U205#(tt,V2) -> U206#(isLNat(V2)) 8.64/8.67 U205#(tt,V2) -> ISLNAT(V2) 8.64/8.67 U21#(tt,X,Y) -> U22#(isLNatKind(X),X,Y) 8.64/8.67 U21#(tt,X,Y) -> ISLNATKIND(X) 8.64/8.67 U22#(tt,X,Y) -> U23#(isLNat(Y),X,Y) 8.64/8.67 U22#(tt,X,Y) -> ISLNAT(Y) 8.64/8.67 U23#(tt,X,Y) -> U24#(isLNatKind(Y),X) 8.64/8.67 U23#(tt,X,Y) -> ISLNATKIND(Y) 8.64/8.67 U231#(tt,V2) -> U232#(isLNatKind(V2)) 8.64/8.67 U231#(tt,V2) -> ISLNATKIND(V2) 8.64/8.67 U24#(tt,X) -> X 8.64/8.67 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.64/8.67 U241#(tt,V1,V2) -> ISLNATKIND(V1) 8.64/8.67 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.64/8.67 U242#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.64/8.67 U243#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.64/8.67 U244#(tt,V1,V2) -> ISLNAT(V1) 8.64/8.67 U245#(tt,V2) -> U246#(isLNat(V2)) 8.64/8.67 U245#(tt,V2) -> ISLNAT(V2) 8.64/8.67 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.64/8.67 U251#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.67 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.64/8.67 U252#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.64/8.67 U253#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.64/8.67 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.67 U255#(tt,V2) -> U256#(isLNat(V2)) 8.64/8.67 U255#(tt,V2) -> ISLNAT(V2) 8.64/8.67 U261#(tt,V2) -> U262#(isLNatKind(V2)) 8.64/8.67 U261#(tt,V2) -> ISLNATKIND(V2) 8.64/8.67 U271#(tt,V2) -> U272#(isLNatKind(V2)) 8.64/8.67 U271#(tt,V2) -> ISLNATKIND(V2) 8.64/8.67 U281#(tt,N) -> U282#(isNaturalKind(N),N) 8.64/8.67 U281#(tt,N) -> ISNATURALKIND(N) 8.64/8.67 U282#(tt,N) -> N 8.64/8.67 U291#(tt,N,XS) -> U292#(isNaturalKind(N),N,XS) 8.64/8.67 U291#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.67 U292#(tt,N,XS) -> U293#(isLNat(XS),N,XS) 8.64/8.67 U292#(tt,N,XS) -> ISLNAT(XS) 8.64/8.67 U293#(tt,N,XS) -> U294#(isLNatKind(XS),N,XS) 8.64/8.67 U293#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.67 U294#(tt,N,XS) -> AFTERNTH(N,XS) 8.64/8.67 U294#(tt,N,XS) -> HEAD(afterNth(N,XS)) 8.64/8.67 U294#(tt,N,XS) -> N 8.64/8.67 U294#(tt,N,XS) -> XS 8.64/8.67 U301#(tt,X,Y) -> U302#(isLNatKind(X),Y) 8.64/8.67 U301#(tt,X,Y) -> ISLNATKIND(X) 8.64/8.67 U302#(tt,Y) -> U303#(isLNat(Y),Y) 8.64/8.67 U302#(tt,Y) -> ISLNAT(Y) 8.64/8.67 U303#(tt,Y) -> U304#(isLNatKind(Y),Y) 8.64/8.67 U303#(tt,Y) -> ISLNATKIND(Y) 8.64/8.67 U304#(tt,Y) -> Y 8.64/8.67 U31#(tt,N,XS) -> U32#(isNaturalKind(N),N,XS) 8.64/8.67 U31#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.67 U311#(tt,XS) -> U312#(isLNatKind(XS),XS) 8.64/8.67 U311#(tt,XS) -> ISLNATKIND(XS) 8.64/8.67 U312#(tt,XS) -> XS 8.64/8.67 U32#(tt,N,XS) -> U33#(isLNat(XS),N,XS) 8.64/8.67 U32#(tt,N,XS) -> ISLNAT(XS) 8.64/8.67 U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) 8.64/8.67 U321#(tt,N,X,XS) -> ISNATURALKIND(N) 8.64/8.67 U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) 8.64/8.67 U322#(tt,N,X,XS) -> ISNATURAL(X) 8.64/8.67 U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) 8.64/8.67 U323#(tt,N,X,XS) -> ISNATURALKIND(X) 8.64/8.67 U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) 8.64/8.67 U324#(tt,N,X,XS) -> ISLNAT(XS) 8.64/8.67 U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) 8.64/8.67 U325#(tt,N,X,XS) -> ISLNATKIND(XS) 8.64/8.67 U326#(tt,N,X,XS) -> U327#(splitAt(N,XS),X) 8.64/8.67 U326#(tt,N,X,XS) -> SPLITAT(N,XS) 8.64/8.67 U326#(tt,N,X,XS) -> N 8.64/8.67 U326#(tt,N,X,XS) -> XS 8.64/8.67 U327#(pair(YS,ZS),X) -> X 8.64/8.67 U33#(tt,N,XS) -> U34#(isLNatKind(XS),N) 8.64/8.67 U33#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.67 U331#(tt,N,XS) -> U332#(isNaturalKind(N),XS) 8.64/8.67 U331#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.67 U332#(tt,XS) -> U333#(isLNat(XS),XS) 8.64/8.67 U332#(tt,XS) -> ISLNAT(XS) 8.64/8.67 U333#(tt,XS) -> U334#(isLNatKind(XS),XS) 8.64/8.67 U333#(tt,XS) -> ISLNATKIND(XS) 8.64/8.67 U334#(tt,XS) -> XS 8.64/8.67 U34#(tt,N) -> N 8.64/8.67 U341#(tt,N,XS) -> U342#(isNaturalKind(N),N,XS) 8.64/8.67 U341#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.67 U342#(tt,N,XS) -> U343#(isLNat(XS),N,XS) 8.64/8.67 U342#(tt,N,XS) -> ISLNAT(XS) 8.64/8.67 U343#(tt,N,XS) -> U344#(isLNatKind(XS),N,XS) 8.64/8.67 U343#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.67 U344#(tt,N,XS) -> FST(splitAt(N,XS)) 8.64/8.67 U344#(tt,N,XS) -> SPLITAT(N,XS) 8.64/8.67 U344#(tt,N,XS) -> N 8.64/8.67 U344#(tt,N,XS) -> XS 8.64/8.67 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.64/8.67 U41#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.67 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.64/8.67 U42#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.64/8.67 U43#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.64/8.67 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.67 U45#(tt,V2) -> U46#(isLNat(V2)) 8.64/8.67 U45#(tt,V2) -> ISLNAT(V2) 8.64/8.67 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.64/8.67 U51#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.67 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.64/8.67 U52#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.64/8.67 U53#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.67 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.64/8.67 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.67 U55#(tt,V2) -> U56#(isLNat(V2)) 8.64/8.67 U55#(tt,V2) -> ISLNAT(V2) 8.64/8.67 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.64/8.67 U61#(tt,V1) -> ISPLNATKIND(V1) 8.64/8.67 U62#(tt,V1) -> U63#(isPLNat(V1)) 8.64/8.67 U62#(tt,V1) -> ISPLNAT(V1) 8.64/8.67 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.64/8.67 U71#(tt,V1) -> ISNATURALKIND(V1) 8.64/8.67 U72#(tt,V1) -> U73#(isNatural(V1)) 8.64/8.67 U72#(tt,V1) -> ISNATURAL(V1) 8.64/8.67 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.64/8.67 U81#(tt,V1) -> ISPLNATKIND(V1) 8.64/8.67 U82#(tt,V1) -> U83#(isPLNat(V1)) 8.64/8.67 U82#(tt,V1) -> ISPLNAT(V1) 8.64/8.67 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.64/8.67 U91#(tt,V1) -> ISLNATKIND(V1) 8.64/8.67 U92#(tt,V1) -> U93#(isLNat(V1)) 8.64/8.67 U92#(tt,V1) -> ISLNAT(V1) 8.64/8.67 AFTERNTH(N,XS) -> U11#(isNatural(N),N,XS) 8.64/8.67 AFTERNTH(N,XS) -> ISNATURAL(N) 8.64/8.67 FST(pair(X,Y)) -> U21#(isLNat(X),X,Y) 8.64/8.67 FST(pair(X,Y)) -> ISLNAT(X) 8.64/8.67 HEAD(cons(N,XS)) -> U31#(isNatural(N),N,XS) 8.64/8.67 HEAD(cons(N,XS)) -> ISNATURAL(N) 8.64/8.67 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.64/8.67 ISLNAT(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.64/8.67 ISLNAT(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.67 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.64/8.67 ISLNAT(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.67 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.64/8.67 ISLNAT(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.67 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.64/8.67 ISLNAT(tail(V1)) -> ISLNATKIND(V1) 8.64/8.67 ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) 8.64/8.67 ISLNAT(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.64/8.67 ISLNAT(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) 8.64/8.67 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISLNATKIND(fst(V1)) -> U131#(isPLNatKind(V1)) 8.64/8.67 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.67 ISLNATKIND(natsFrom(V1)) -> U141#(isNaturalKind(V1)) 8.64/8.67 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.67 ISLNATKIND(snd(V1)) -> U151#(isPLNatKind(V1)) 8.64/8.67 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.67 ISLNATKIND(tail(V1)) -> U161#(isLNatKind(V1)) 8.64/8.67 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.64/8.67 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.64/8.67 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.64/8.67 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.64/8.67 ISNATURAL(head(V1)) -> ISLNATKIND(V1) 8.64/8.67 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.64/8.67 ISNATURAL(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.64/8.67 ISNATURAL(s(V1)) -> ISNATURALKIND(V1) 8.64/8.67 ISNATURALKIND(head(V1)) -> U211#(isLNatKind(V1)) 8.64/8.67 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.64/8.67 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.64/8.67 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISNATURALKIND(s(V1)) -> U221#(isNaturalKind(V1)) 8.64/8.67 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.64/8.67 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.64/8.67 ISPLNAT(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.67 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.64/8.67 ISPLNAT(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.67 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 NATSFROM(N) -> U281#(isNatural(N),N) 8.64/8.68 NATSFROM(N) -> ISNATURAL(N) 8.64/8.68 SEL(N,XS) -> U291#(isNatural(N),N,XS) 8.64/8.68 SEL(N,XS) -> ISNATURAL(N) 8.64/8.68 SND(pair(X,Y)) -> U301#(isLNat(X),X,Y) 8.64/8.68 SND(pair(X,Y)) -> ISLNAT(X) 8.64/8.68 SPLITAT(0,XS) -> U311#(isLNat(XS),XS) 8.64/8.68 SPLITAT(0,XS) -> ISLNAT(XS) 8.64/8.68 SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) 8.64/8.68 SPLITAT(s(N),cons(X,XS)) -> ISNATURAL(N) 8.64/8.68 TAIL(cons(N,XS)) -> U331#(isNatural(N),N,XS) 8.64/8.68 TAIL(cons(N,XS)) -> ISNATURAL(N) 8.64/8.68 TAKE(N,XS) -> U341#(isNatural(N),N,XS) 8.64/8.68 TAKE(N,XS) -> ISNATURAL(N) 8.64/8.68 -> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 -> Unhiding Rules: 8.64/8.68 natsFrom(s(N)) -> NATSFROM(s(N)) 8.64/8.68 8.64/8.68 Problem 1: 8.64/8.68 8.64/8.68 SCC Processor: 8.64/8.68 -> Pairs: 8.64/8.68 U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) 8.64/8.68 U101#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.68 U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) 8.64/8.68 U102#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) 8.64/8.68 U103#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) 8.64/8.68 U104#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U105#(tt,V2) -> U106#(isLNat(V2)) 8.64/8.68 U105#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U11#(tt,N,XS) -> U12#(isNaturalKind(N),N,XS) 8.64/8.68 U11#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.68 U111#(tt,V2) -> U112#(isLNatKind(V2)) 8.64/8.68 U111#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U12#(tt,N,XS) -> U13#(isLNat(XS),N,XS) 8.64/8.68 U12#(tt,N,XS) -> ISLNAT(XS) 8.64/8.68 U121#(tt,V2) -> U122#(isLNatKind(V2)) 8.64/8.68 U121#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U13#(tt,N,XS) -> U14#(isLNatKind(XS),N,XS) 8.64/8.68 U13#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.68 U14#(tt,N,XS) -> SND(splitAt(N,XS)) 8.64/8.68 U14#(tt,N,XS) -> SPLITAT(N,XS) 8.64/8.68 U14#(tt,N,XS) -> N 8.64/8.68 U14#(tt,N,XS) -> XS 8.64/8.68 U171#(tt,V2) -> U172#(isLNatKind(V2)) 8.64/8.68 U171#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U181#(tt,V1) -> U182#(isLNatKind(V1),V1) 8.64/8.68 U181#(tt,V1) -> ISLNATKIND(V1) 8.64/8.68 U182#(tt,V1) -> U183#(isLNat(V1)) 8.64/8.68 U182#(tt,V1) -> ISLNAT(V1) 8.64/8.68 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.64/8.68 U191#(tt,V1) -> ISNATURALKIND(V1) 8.64/8.68 U192#(tt,V1) -> U193#(isNatural(V1)) 8.64/8.68 U192#(tt,V1) -> ISNATURAL(V1) 8.64/8.68 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.64/8.68 U201#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.68 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.64/8.68 U202#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.64/8.68 U203#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.64/8.68 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U205#(tt,V2) -> U206#(isLNat(V2)) 8.64/8.68 U205#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U21#(tt,X,Y) -> U22#(isLNatKind(X),X,Y) 8.64/8.68 U21#(tt,X,Y) -> ISLNATKIND(X) 8.64/8.68 U22#(tt,X,Y) -> U23#(isLNat(Y),X,Y) 8.64/8.68 U22#(tt,X,Y) -> ISLNAT(Y) 8.64/8.68 U23#(tt,X,Y) -> U24#(isLNatKind(Y),X) 8.64/8.68 U23#(tt,X,Y) -> ISLNATKIND(Y) 8.64/8.68 U231#(tt,V2) -> U232#(isLNatKind(V2)) 8.64/8.68 U231#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U24#(tt,X) -> X 8.64/8.68 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.64/8.68 U241#(tt,V1,V2) -> ISLNATKIND(V1) 8.64/8.68 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.64/8.68 U242#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.64/8.68 U243#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.64/8.68 U244#(tt,V1,V2) -> ISLNAT(V1) 8.64/8.68 U245#(tt,V2) -> U246#(isLNat(V2)) 8.64/8.68 U245#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.64/8.68 U251#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.68 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.64/8.68 U252#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.64/8.68 U253#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.64/8.68 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U255#(tt,V2) -> U256#(isLNat(V2)) 8.64/8.68 U255#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U261#(tt,V2) -> U262#(isLNatKind(V2)) 8.64/8.68 U261#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U271#(tt,V2) -> U272#(isLNatKind(V2)) 8.64/8.68 U271#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U281#(tt,N) -> U282#(isNaturalKind(N),N) 8.64/8.68 U281#(tt,N) -> ISNATURALKIND(N) 8.64/8.68 U282#(tt,N) -> N 8.64/8.68 U291#(tt,N,XS) -> U292#(isNaturalKind(N),N,XS) 8.64/8.68 U291#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.68 U292#(tt,N,XS) -> U293#(isLNat(XS),N,XS) 8.64/8.68 U292#(tt,N,XS) -> ISLNAT(XS) 8.64/8.68 U293#(tt,N,XS) -> U294#(isLNatKind(XS),N,XS) 8.64/8.68 U293#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.68 U294#(tt,N,XS) -> AFTERNTH(N,XS) 8.64/8.68 U294#(tt,N,XS) -> HEAD(afterNth(N,XS)) 8.64/8.68 U294#(tt,N,XS) -> N 8.64/8.68 U294#(tt,N,XS) -> XS 8.64/8.68 U301#(tt,X,Y) -> U302#(isLNatKind(X),Y) 8.64/8.68 U301#(tt,X,Y) -> ISLNATKIND(X) 8.64/8.68 U302#(tt,Y) -> U303#(isLNat(Y),Y) 8.64/8.68 U302#(tt,Y) -> ISLNAT(Y) 8.64/8.68 U303#(tt,Y) -> U304#(isLNatKind(Y),Y) 8.64/8.68 U303#(tt,Y) -> ISLNATKIND(Y) 8.64/8.68 U304#(tt,Y) -> Y 8.64/8.68 U31#(tt,N,XS) -> U32#(isNaturalKind(N),N,XS) 8.64/8.68 U31#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.68 U311#(tt,XS) -> U312#(isLNatKind(XS),XS) 8.64/8.68 U311#(tt,XS) -> ISLNATKIND(XS) 8.64/8.68 U312#(tt,XS) -> XS 8.64/8.68 U32#(tt,N,XS) -> U33#(isLNat(XS),N,XS) 8.64/8.68 U32#(tt,N,XS) -> ISLNAT(XS) 8.64/8.68 U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) 8.64/8.68 U321#(tt,N,X,XS) -> ISNATURALKIND(N) 8.64/8.68 U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) 8.64/8.68 U322#(tt,N,X,XS) -> ISNATURAL(X) 8.64/8.68 U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) 8.64/8.68 U323#(tt,N,X,XS) -> ISNATURALKIND(X) 8.64/8.68 U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) 8.64/8.68 U324#(tt,N,X,XS) -> ISLNAT(XS) 8.64/8.68 U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) 8.64/8.68 U325#(tt,N,X,XS) -> ISLNATKIND(XS) 8.64/8.68 U326#(tt,N,X,XS) -> U327#(splitAt(N,XS),X) 8.64/8.68 U326#(tt,N,X,XS) -> SPLITAT(N,XS) 8.64/8.68 U326#(tt,N,X,XS) -> N 8.64/8.68 U326#(tt,N,X,XS) -> XS 8.64/8.68 U327#(pair(YS,ZS),X) -> X 8.64/8.68 U33#(tt,N,XS) -> U34#(isLNatKind(XS),N) 8.64/8.68 U33#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.68 U331#(tt,N,XS) -> U332#(isNaturalKind(N),XS) 8.64/8.68 U331#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.68 U332#(tt,XS) -> U333#(isLNat(XS),XS) 8.64/8.68 U332#(tt,XS) -> ISLNAT(XS) 8.64/8.68 U333#(tt,XS) -> U334#(isLNatKind(XS),XS) 8.64/8.68 U333#(tt,XS) -> ISLNATKIND(XS) 8.64/8.68 U334#(tt,XS) -> XS 8.64/8.68 U34#(tt,N) -> N 8.64/8.68 U341#(tt,N,XS) -> U342#(isNaturalKind(N),N,XS) 8.64/8.68 U341#(tt,N,XS) -> ISNATURALKIND(N) 8.64/8.68 U342#(tt,N,XS) -> U343#(isLNat(XS),N,XS) 8.64/8.68 U342#(tt,N,XS) -> ISLNAT(XS) 8.64/8.68 U343#(tt,N,XS) -> U344#(isLNatKind(XS),N,XS) 8.64/8.68 U343#(tt,N,XS) -> ISLNATKIND(XS) 8.64/8.68 U344#(tt,N,XS) -> FST(splitAt(N,XS)) 8.64/8.68 U344#(tt,N,XS) -> SPLITAT(N,XS) 8.64/8.68 U344#(tt,N,XS) -> N 8.64/8.68 U344#(tt,N,XS) -> XS 8.64/8.68 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.64/8.68 U41#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.68 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.64/8.68 U42#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.64/8.68 U43#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.64/8.68 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U45#(tt,V2) -> U46#(isLNat(V2)) 8.64/8.68 U45#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.64/8.68 U51#(tt,V1,V2) -> ISNATURALKIND(V1) 8.64/8.68 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.64/8.68 U52#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.64/8.68 U53#(tt,V1,V2) -> ISLNATKIND(V2) 8.64/8.68 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.64/8.68 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U55#(tt,V2) -> U56#(isLNat(V2)) 8.64/8.68 U55#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.64/8.68 U61#(tt,V1) -> ISPLNATKIND(V1) 8.64/8.68 U62#(tt,V1) -> U63#(isPLNat(V1)) 8.64/8.68 U62#(tt,V1) -> ISPLNAT(V1) 8.64/8.68 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.64/8.68 U71#(tt,V1) -> ISNATURALKIND(V1) 8.64/8.68 U72#(tt,V1) -> U73#(isNatural(V1)) 8.64/8.68 U72#(tt,V1) -> ISNATURAL(V1) 8.64/8.68 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.64/8.68 U81#(tt,V1) -> ISPLNATKIND(V1) 8.64/8.68 U82#(tt,V1) -> U83#(isPLNat(V1)) 8.64/8.68 U82#(tt,V1) -> ISPLNAT(V1) 8.64/8.68 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.64/8.68 U91#(tt,V1) -> ISLNATKIND(V1) 8.64/8.68 U92#(tt,V1) -> U93#(isLNat(V1)) 8.64/8.68 U92#(tt,V1) -> ISLNAT(V1) 8.64/8.68 AFTERNTH(N,XS) -> U11#(isNatural(N),N,XS) 8.64/8.68 AFTERNTH(N,XS) -> ISNATURAL(N) 8.64/8.68 FST(pair(X,Y)) -> U21#(isLNat(X),X,Y) 8.64/8.68 FST(pair(X,Y)) -> ISLNAT(X) 8.64/8.68 HEAD(cons(N,XS)) -> U31#(isNatural(N),N,XS) 8.64/8.68 HEAD(cons(N,XS)) -> ISNATURAL(N) 8.64/8.68 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISLNAT(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.64/8.68 ISLNAT(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.64/8.68 ISLNAT(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.64/8.68 ISLNAT(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.64/8.68 ISLNAT(tail(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISLNAT(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISLNAT(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(fst(V1)) -> U131#(isPLNatKind(V1)) 8.64/8.68 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(natsFrom(V1)) -> U141#(isNaturalKind(V1)) 8.64/8.68 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(snd(V1)) -> U151#(isPLNatKind(V1)) 8.64/8.68 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(tail(V1)) -> U161#(isLNatKind(V1)) 8.64/8.68 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.64/8.68 ISNATURAL(head(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISNATURAL(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.64/8.68 ISNATURAL(s(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(head(V1)) -> U211#(isLNatKind(V1)) 8.64/8.68 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(s(V1)) -> U221#(isNaturalKind(V1)) 8.64/8.68 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISPLNAT(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.64/8.68 ISPLNAT(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 NATSFROM(N) -> U281#(isNatural(N),N) 8.64/8.68 NATSFROM(N) -> ISNATURAL(N) 8.64/8.68 SEL(N,XS) -> U291#(isNatural(N),N,XS) 8.64/8.68 SEL(N,XS) -> ISNATURAL(N) 8.64/8.68 SND(pair(X,Y)) -> U301#(isLNat(X),X,Y) 8.64/8.68 SND(pair(X,Y)) -> ISLNAT(X) 8.64/8.68 SPLITAT(0,XS) -> U311#(isLNat(XS),XS) 8.64/8.68 SPLITAT(0,XS) -> ISLNAT(XS) 8.64/8.68 SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) 8.64/8.68 SPLITAT(s(N),cons(X,XS)) -> ISNATURAL(N) 8.64/8.68 TAIL(cons(N,XS)) -> U331#(isNatural(N),N,XS) 8.64/8.68 TAIL(cons(N,XS)) -> ISNATURAL(N) 8.64/8.68 TAKE(N,XS) -> U341#(isNatural(N),N,XS) 8.64/8.68 TAKE(N,XS) -> ISNATURAL(N) 8.64/8.68 -> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 -> Unhiding rules: 8.64/8.68 natsFrom(s(N)) -> NATSFROM(s(N)) 8.64/8.68 ->Strongly Connected Components: 8.64/8.68 ->->Cycle: 8.64/8.68 ->->-> Pairs: 8.64/8.68 U111#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U121#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U171#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U231#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U261#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U271#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 ->->-> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 ->->-> Unhiding rules: 8.64/8.68 Empty 8.64/8.68 ->->Cycle: 8.64/8.68 ->->-> Pairs: 8.64/8.68 U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) 8.64/8.68 U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) 8.64/8.68 U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) 8.64/8.68 U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) 8.64/8.68 U104#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U105#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U181#(tt,V1) -> U182#(isLNatKind(V1),V1) 8.64/8.68 U182#(tt,V1) -> ISLNAT(V1) 8.64/8.68 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.64/8.68 U192#(tt,V1) -> ISNATURAL(V1) 8.64/8.68 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.64/8.68 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.64/8.68 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.64/8.68 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.64/8.68 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U205#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.64/8.68 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.64/8.68 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.64/8.68 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.64/8.68 U244#(tt,V1,V2) -> ISLNAT(V1) 8.64/8.68 U245#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.64/8.68 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.64/8.68 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.64/8.68 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.64/8.68 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U255#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.64/8.68 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.64/8.68 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.64/8.68 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.64/8.68 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U45#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.64/8.68 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.64/8.68 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.64/8.68 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.64/8.68 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.64/8.68 U55#(tt,V2) -> ISLNAT(V2) 8.64/8.68 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.64/8.68 U62#(tt,V1) -> ISPLNAT(V1) 8.64/8.68 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.64/8.68 U72#(tt,V1) -> ISNATURAL(V1) 8.64/8.68 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.64/8.68 U82#(tt,V1) -> ISPLNAT(V1) 8.64/8.68 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.64/8.68 U92#(tt,V1) -> ISLNAT(V1) 8.64/8.68 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.64/8.68 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.64/8.68 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.64/8.68 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.64/8.68 ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.64/8.68 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.64/8.68 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.64/8.68 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.64/8.68 ->->-> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 ->->-> Unhiding rules: 8.64/8.68 Empty 8.64/8.68 ->->Cycle: 8.64/8.68 ->->-> Pairs: 8.64/8.68 U281#(tt,N) -> U282#(isNaturalKind(N),N) 8.64/8.68 U282#(tt,N) -> N 8.64/8.68 NATSFROM(N) -> U281#(isNatural(N),N) 8.64/8.68 ->->-> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 ->->-> Unhiding rules: 8.64/8.68 natsFrom(s(N)) -> NATSFROM(s(N)) 8.64/8.68 ->->Cycle: 8.64/8.68 ->->-> Pairs: 8.64/8.68 U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) 8.64/8.68 U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) 8.64/8.68 U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) 8.64/8.68 U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) 8.64/8.68 U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) 8.64/8.68 U326#(tt,N,X,XS) -> SPLITAT(N,XS) 8.64/8.68 SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) 8.64/8.68 ->->-> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 ->->-> Unhiding rules: 8.64/8.68 Empty 8.64/8.68 8.64/8.68 8.64/8.68 The problem is decomposed in 4 subproblems. 8.64/8.68 8.64/8.68 Problem 1.1: 8.64/8.68 8.64/8.68 Reduction Pairs Processor: 8.64/8.68 -> Pairs: 8.64/8.68 U111#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U121#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U171#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U231#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U261#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U271#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 -> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 -> Unhiding rules: 8.64/8.68 Empty 8.64/8.68 -> Usable rules: 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U131(tt) -> tt 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U211(tt) -> tt 8.64/8.68 U221(tt) -> tt 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 ->Interpretation type: 8.64/8.68 Linear 8.64/8.68 ->Coefficients: 8.64/8.68 Natural Numbers 8.64/8.68 ->Dimension: 8.64/8.68 1 8.64/8.68 ->Bound: 8.64/8.68 2 8.64/8.68 ->Interpretation: 8.64/8.68 8.64/8.68 [U111](X1,X2) = 2.X1 8.64/8.68 [U112](X) = 2 8.64/8.68 [U121](X1,X2) = 2.X1 + X2 + 2 8.64/8.68 [U122](X) = 2 8.64/8.68 [U131](X) = 2.X 8.64/8.68 [U141](X) = X 8.64/8.68 [U151](X) = 2.X + 2 8.64/8.68 [U161](X) = 2.X 8.64/8.68 [U171](X1,X2) = 2.X2 + 2 8.64/8.68 [U172](X) = 2 8.64/8.68 [U211](X) = 2.X + 2 8.64/8.68 [U221](X) = 2.X + 2 8.64/8.68 [U231](X1,X2) = 2.X1 + 2.X2 + 2 8.64/8.68 [U232](X) = X + 2 8.64/8.68 [U261](X1,X2) = 2 8.64/8.68 [U262](X) = 2 8.64/8.68 [U271](X1,X2) = 2 8.64/8.68 [U272](X) = 2 8.64/8.68 [afterNth](X1,X2) = 2.X1 + 2.X2 + 1 8.64/8.68 [fst](X) = X + 1 8.64/8.68 [head](X) = 2.X + 2 8.64/8.68 [isLNatKind](X) = 2.X + 2 8.64/8.68 [isNaturalKind](X) = 2.X + 2 8.64/8.68 [isPLNatKind](X) = 2 8.64/8.68 [natsFrom](X) = 2.X 8.64/8.68 [sel](X1,X2) = 2.X1 + X2 + 2 8.64/8.68 [snd](X) = X + 2 8.64/8.68 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 8.64/8.68 [tail](X) = 2.X + 2 8.64/8.68 [take](X1,X2) = 2.X1 + 2.X2 + 2 8.64/8.68 [0] = 2 8.64/8.68 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.64/8.68 [nil] = 2 8.64/8.68 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.64/8.68 [s](X) = 2.X + 2 8.64/8.68 [tt] = 2 8.64/8.68 [U111#](X1,X2) = 2.X1 + 2.X2 8.64/8.68 [U121#](X1,X2) = X1 + 2.X2 + 2 8.64/8.68 [U171#](X1,X2) = 2.X1 + 2.X2 + 2 8.64/8.68 [U231#](X1,X2) = 2.X2 + 2 8.64/8.68 [U261#](X1,X2) = X1 + 2.X2 + 1 8.64/8.68 [U271#](X1,X2) = 2.X1 + 2.X2 + 2 8.64/8.68 [ISLNATKIND](X) = 2.X + 2 8.64/8.68 [ISNATURALKIND](X) = 2.X 8.64/8.68 [ISPLNATKIND](X) = 2.X + 2 8.64/8.68 8.64/8.68 Problem 1.1: 8.64/8.68 8.64/8.68 SCC Processor: 8.64/8.68 -> Pairs: 8.64/8.68 U121#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U171#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U231#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U261#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U271#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> U111#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 -> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 -> Unhiding rules: 8.64/8.68 Empty 8.64/8.68 ->Strongly Connected Components: 8.64/8.68 ->->Cycle: 8.64/8.68 ->->-> Pairs: 8.64/8.68 U121#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U171#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U231#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U261#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U271#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 ->->-> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.64/8.68 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.64/8.68 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.64/8.68 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.64/8.68 U332(tt,XS) -> U333(isLNat(XS),XS) 8.64/8.68 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.64/8.68 U334(tt,XS) -> XS 8.64/8.68 U34(tt,N) -> N 8.64/8.68 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.64/8.68 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.64/8.68 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.64/8.68 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.64/8.68 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.64/8.68 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.64/8.68 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.64/8.68 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.64/8.68 U45(tt,V2) -> U46(isLNat(V2)) 8.64/8.68 U46(tt) -> tt 8.64/8.68 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.64/8.68 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.64/8.68 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.64/8.68 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.64/8.68 U55(tt,V2) -> U56(isLNat(V2)) 8.64/8.68 U56(tt) -> tt 8.64/8.68 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.64/8.68 U62(tt,V1) -> U63(isPLNat(V1)) 8.64/8.68 U63(tt) -> tt 8.64/8.68 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.64/8.68 U72(tt,V1) -> U73(isNatural(V1)) 8.64/8.68 U73(tt) -> tt 8.64/8.68 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.64/8.68 U82(tt,V1) -> U83(isPLNat(V1)) 8.64/8.68 U83(tt) -> tt 8.64/8.68 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.64/8.68 U92(tt,V1) -> U93(isLNat(V1)) 8.64/8.68 U93(tt) -> tt 8.64/8.68 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.64/8.68 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.64/8.68 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.64/8.68 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.64/8.68 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.64/8.68 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.64/8.68 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.64/8.68 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.64/8.68 isLNat(nil) -> tt 8.64/8.68 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.64/8.68 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.64/8.68 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.64/8.68 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.64/8.68 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.64/8.68 isLNatKind(nil) -> tt 8.64/8.68 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.64/8.68 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.64/8.68 isNatural(0) -> tt 8.64/8.68 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.64/8.68 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.64/8.68 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.64/8.68 isNaturalKind(0) -> tt 8.64/8.68 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.64/8.68 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.64/8.68 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.64/8.68 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.64/8.68 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.64/8.68 natsFrom(N) -> U281(isNatural(N),N) 8.64/8.68 sel(N,XS) -> U291(isNatural(N),N,XS) 8.64/8.68 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.64/8.68 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.64/8.68 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.64/8.68 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.64/8.68 take(N,XS) -> U341(isNatural(N),N,XS) 8.64/8.68 ->->-> Unhiding rules: 8.64/8.68 Empty 8.64/8.68 8.64/8.68 Problem 1.1: 8.64/8.68 8.64/8.68 Reduction Pairs Processor: 8.64/8.68 -> Pairs: 8.64/8.68 U121#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U171#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U231#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U261#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 U271#(tt,V2) -> ISLNATKIND(V2) 8.64/8.68 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.64/8.68 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.64/8.68 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.64/8.68 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.64/8.68 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.64/8.68 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.64/8.68 -> Rules: 8.64/8.68 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.64/8.68 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.64/8.68 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.64/8.68 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.64/8.68 U105(tt,V2) -> U106(isLNat(V2)) 8.64/8.68 U106(tt) -> tt 8.64/8.68 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.64/8.68 U111(tt,V2) -> U112(isLNatKind(V2)) 8.64/8.68 U112(tt) -> tt 8.64/8.68 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.64/8.68 U121(tt,V2) -> U122(isLNatKind(V2)) 8.64/8.68 U122(tt) -> tt 8.64/8.68 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.64/8.68 U131(tt) -> tt 8.64/8.68 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.64/8.68 U141(tt) -> tt 8.64/8.68 U151(tt) -> tt 8.64/8.68 U161(tt) -> tt 8.64/8.68 U171(tt,V2) -> U172(isLNatKind(V2)) 8.64/8.68 U172(tt) -> tt 8.64/8.68 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.64/8.68 U182(tt,V1) -> U183(isLNat(V1)) 8.64/8.68 U183(tt) -> tt 8.64/8.68 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.64/8.68 U192(tt,V1) -> U193(isNatural(V1)) 8.64/8.68 U193(tt) -> tt 8.64/8.68 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.64/8.68 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.64/8.68 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.64/8.68 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.64/8.68 U205(tt,V2) -> U206(isLNat(V2)) 8.64/8.68 U206(tt) -> tt 8.64/8.68 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.64/8.68 U211(tt) -> tt 8.64/8.68 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.64/8.68 U221(tt) -> tt 8.64/8.68 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.64/8.68 U231(tt,V2) -> U232(isLNatKind(V2)) 8.64/8.68 U232(tt) -> tt 8.64/8.68 U24(tt,X) -> X 8.64/8.68 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.64/8.68 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.64/8.68 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.64/8.68 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.64/8.68 U245(tt,V2) -> U246(isLNat(V2)) 8.64/8.68 U246(tt) -> tt 8.64/8.68 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.64/8.68 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.64/8.68 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.64/8.68 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.64/8.68 U255(tt,V2) -> U256(isLNat(V2)) 8.64/8.68 U256(tt) -> tt 8.64/8.68 U261(tt,V2) -> U262(isLNatKind(V2)) 8.64/8.68 U262(tt) -> tt 8.64/8.68 U271(tt,V2) -> U272(isLNatKind(V2)) 8.64/8.68 U272(tt) -> tt 8.64/8.68 U281(tt,N) -> U282(isNaturalKind(N),N) 8.64/8.68 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.64/8.68 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.64/8.68 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.64/8.68 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.64/8.68 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.64/8.68 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.64/8.68 U302(tt,Y) -> U303(isLNat(Y),Y) 8.64/8.68 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.64/8.68 U304(tt,Y) -> Y 8.64/8.68 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.64/8.68 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.64/8.68 U312(tt,XS) -> pair(nil,XS) 8.64/8.68 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.64/8.68 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.64/8.68 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.64/8.68 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.64/8.68 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.64/8.68 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.64/8.68 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 -> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 -> Usable rules: 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U131(tt) -> tt 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U211(tt) -> tt 8.71/8.69 U221(tt) -> tt 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 ->Interpretation type: 8.71/8.69 Linear 8.71/8.69 ->Coefficients: 8.71/8.69 Natural Numbers 8.71/8.69 ->Dimension: 8.71/8.69 1 8.71/8.69 ->Bound: 8.71/8.69 2 8.71/8.69 ->Interpretation: 8.71/8.69 8.71/8.69 [U111](X1,X2) = 2.X2 + 2 8.71/8.69 [U112](X) = X + 2 8.71/8.69 [U121](X1,X2) = 2.X1 8.71/8.69 [U122](X) = 2 8.71/8.69 [U131](X) = X + 2 8.71/8.69 [U141](X) = X + 1 8.71/8.69 [U151](X) = 2 8.71/8.69 [U161](X) = 2 8.71/8.69 [U171](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [U172](X) = 2 8.71/8.69 [U211](X) = 2 8.71/8.69 [U221](X) = 2 8.71/8.69 [U231](X1,X2) = X1 8.71/8.69 [U232](X) = 2 8.71/8.69 [U261](X1,X2) = 2.X2 + 2 8.71/8.69 [U262](X) = X + 2 8.71/8.69 [U271](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [U272](X) = X + 2 8.71/8.69 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [fst](X) = X + 2 8.71/8.69 [head](X) = 2.X + 1 8.71/8.69 [isLNatKind](X) = 2.X 8.71/8.69 [isNaturalKind](X) = 2 8.71/8.69 [isPLNatKind](X) = X + 2 8.71/8.69 [natsFrom](X) = X + 2 8.71/8.69 [sel](X1,X2) = 2.X1 + X2 + 2 8.71/8.69 [snd](X) = X + 1 8.71/8.69 [splitAt](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [tail](X) = 2.X + 2 8.71/8.69 [take](X1,X2) = 2.X1 + X2 + 2 8.71/8.69 [0] = 2 8.71/8.69 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [nil] = 1 8.71/8.69 [pair](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [s](X) = X 8.71/8.69 [tt] = 2 8.71/8.69 [U121#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [U171#](X1,X2) = 2.X1 + 2.X2 8.71/8.69 [U231#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [U261#](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [U271#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [ISLNATKIND](X) = 2.X + 2 8.71/8.69 [ISNATURALKIND](X) = 2.X + 2 8.71/8.69 [ISPLNATKIND](X) = 2.X + 2 8.71/8.69 8.71/8.69 Problem 1.1: 8.71/8.69 8.71/8.69 SCC Processor: 8.71/8.69 -> Pairs: 8.71/8.69 U171#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U231#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U261#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U271#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.71/8.69 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.71/8.69 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.71/8.69 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.71/8.69 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(cons(V1,V2)) -> U121#(isNaturalKind(V1),V2) 8.71/8.69 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.71/8.69 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.71/8.69 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.71/8.69 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.71/8.69 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.71/8.69 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.71/8.69 -> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 -> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 ->Strongly Connected Components: 8.71/8.69 ->->Cycle: 8.71/8.69 ->->-> Pairs: 8.71/8.69 U171#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U231#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U261#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U271#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.71/8.69 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.71/8.69 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.71/8.69 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.71/8.69 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.71/8.69 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.71/8.69 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.71/8.69 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.71/8.69 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.71/8.69 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.71/8.69 ->->-> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 ->->-> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 8.71/8.69 Problem 1.1: 8.71/8.69 8.71/8.69 SubNColl Processor: 8.71/8.69 -> Pairs: 8.71/8.69 U171#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U231#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U261#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U271#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 ISLNATKIND(afterNth(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(fst(V1)) -> ISPLNATKIND(V1) 8.71/8.69 ISLNATKIND(natsFrom(V1)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(snd(V1)) -> ISPLNATKIND(V1) 8.71/8.69 ISLNATKIND(tail(V1)) -> ISLNATKIND(V1) 8.71/8.69 ISLNATKIND(take(V1,V2)) -> U171#(isNaturalKind(V1),V2) 8.71/8.69 ISLNATKIND(take(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISLNATKIND(cons(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISNATURALKIND(head(V1)) -> ISLNATKIND(V1) 8.71/8.69 ISNATURALKIND(sel(V1,V2)) -> U231#(isNaturalKind(V1),V2) 8.71/8.69 ISNATURALKIND(sel(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISNATURALKIND(s(V1)) -> ISNATURALKIND(V1) 8.71/8.69 ISPLNATKIND(splitAt(V1,V2)) -> U271#(isNaturalKind(V1),V2) 8.71/8.69 ISPLNATKIND(splitAt(V1,V2)) -> ISNATURALKIND(V1) 8.71/8.69 ISPLNATKIND(pair(V1,V2)) -> U261#(isLNatKind(V1),V2) 8.71/8.69 ISPLNATKIND(pair(V1,V2)) -> ISLNATKIND(V1) 8.71/8.69 -> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 -> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 ->Projection: 8.71/8.69 pi(U171#) = 2 8.71/8.69 pi(U231#) = 2 8.71/8.69 pi(U261#) = 2 8.71/8.69 pi(U271#) = 2 8.71/8.69 pi(ISLNATKIND) = 1 8.71/8.69 pi(ISNATURALKIND) = 1 8.71/8.69 pi(ISPLNATKIND) = 1 8.71/8.69 8.71/8.69 Problem 1.1: 8.71/8.69 8.71/8.69 SCC Processor: 8.71/8.69 -> Pairs: 8.71/8.69 U171#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U231#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U261#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 U271#(tt,V2) -> ISLNATKIND(V2) 8.71/8.69 -> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 -> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 ->Strongly Connected Components: 8.71/8.69 There is no strongly connected component 8.71/8.69 8.71/8.69 The problem is finite. 8.71/8.69 8.71/8.69 Problem 1.2: 8.71/8.69 8.71/8.69 Reduction Pairs Processor: 8.71/8.69 -> Pairs: 8.71/8.69 U101#(tt,V1,V2) -> U102#(isNaturalKind(V1),V1,V2) 8.71/8.69 U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) 8.71/8.69 U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) 8.71/8.69 U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) 8.71/8.69 U104#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U105#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U181#(tt,V1) -> U182#(isLNatKind(V1),V1) 8.71/8.69 U182#(tt,V1) -> ISLNAT(V1) 8.71/8.69 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.71/8.69 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.69 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.69 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.69 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.69 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.69 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.69 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.69 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.69 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.69 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.69 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.69 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.69 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.69 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.69 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.69 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.69 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.69 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.69 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.69 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.69 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.69 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.69 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.69 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.69 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.69 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.69 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.69 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.69 ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.71/8.69 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.69 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.69 -> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 -> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 -> Usable rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U131(tt) -> tt 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U211(tt) -> tt 8.71/8.69 U221(tt) -> tt 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 ->Interpretation type: 8.71/8.69 Linear 8.71/8.69 ->Coefficients: 8.71/8.69 Natural Numbers 8.71/8.69 ->Dimension: 8.71/8.69 1 8.71/8.69 ->Bound: 8.71/8.69 2 8.71/8.69 ->Interpretation: 8.71/8.69 8.71/8.69 [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.69 [U102](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.69 [U103](X1,X2,X3) = X1 + X3 + 2 8.71/8.69 [U104](X1,X2,X3) = X1 + 2 8.71/8.69 [U105](X1,X2) = 2 8.71/8.69 [U106](X) = 2 8.71/8.69 [U111](X1,X2) = X1 + 2 8.71/8.69 [U112](X) = 2 8.71/8.69 [U121](X1,X2) = X1 + X2 + 2 8.71/8.69 [U122](X) = X + 2 8.71/8.69 [U131](X) = 2 8.71/8.69 [U141](X) = X + 2 8.71/8.69 [U151](X) = X + 2 8.71/8.69 [U161](X) = X + 2 8.71/8.69 [U171](X1,X2) = X1 + X2 + 2 8.71/8.69 [U172](X) = X + 2 8.71/8.69 [U181](X1,X2) = 2.X1 + X2 + 2 8.71/8.69 [U182](X1,X2) = X1 + 2 8.71/8.69 [U183](X) = 2 8.71/8.69 [U191](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [U192](X1,X2) = 2.X1 + 2 8.71/8.69 [U193](X) = 2 8.71/8.69 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.69 [U202](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.69 [U203](X1,X2,X3) = X1 + X3 + 2 8.71/8.69 [U204](X1,X2,X3) = X1 + 2 8.71/8.69 [U205](X1,X2) = 2 8.71/8.69 [U206](X) = 2 8.71/8.69 [U211](X) = X + 2 8.71/8.69 [U221](X) = 2.X + 1 8.71/8.69 [U231](X1,X2) = X1 + 2 8.71/8.69 [U232](X) = 2 8.71/8.69 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.69 [U242](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.69 [U243](X1,X2,X3) = 2.X1 + 2 8.71/8.69 [U244](X1,X2,X3) = 2 8.71/8.69 [U245](X1,X2) = 2 8.71/8.69 [U246](X) = 2 8.71/8.69 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.69 [U252](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.69 [U253](X1,X2,X3) = 2.X3 + 2 8.71/8.69 [U254](X1,X2,X3) = 2.X1 8.71/8.69 [U255](X1,X2) = 2 8.71/8.69 [U256](X) = 2 8.71/8.69 [U261](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [U262](X) = 2 8.71/8.69 [U271](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [U272](X) = 2 8.71/8.69 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.69 [U42](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.69 [U43](X1,X2,X3) = X1 + X3 + 2 8.71/8.69 [U44](X1,X2,X3) = X1 + 2 8.71/8.69 [U45](X1,X2) = 2 8.71/8.69 [U46](X) = 2 8.71/8.69 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 8.71/8.69 [U52](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.69 [U53](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.69 [U54](X1,X2,X3) = 2.X1 + 2.X2 8.71/8.69 [U55](X1,X2) = X1 + 2 8.71/8.69 [U56](X) = 2 8.71/8.69 [U61](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [U62](X1,X2) = X1 + 2 8.71/8.69 [U63](X) = 2 8.71/8.69 [U71](X1,X2) = 2.X1 + 2 8.71/8.69 [U72](X1,X2) = 2 8.71/8.69 [U73](X) = 2 8.71/8.69 [U81](X1,X2) = X1 + 2.X2 + 2 8.71/8.69 [U82](X1,X2) = X1 + 2 8.71/8.69 [U83](X) = 2 8.71/8.69 [U91](X1,X2) = 2.X1 + 2.X2 8.71/8.69 [U92](X1,X2) = 2.X2 + 2 8.71/8.69 [U93](X) = X 8.71/8.69 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [fst](X) = 2.X + 2 8.71/8.69 [head](X) = 2.X + 2 8.71/8.69 [isLNat](X) = 2.X + 2 8.71/8.69 [isLNatKind](X) = X + 1 8.71/8.69 [isNatural](X) = 2.X + 2 8.71/8.69 [isNaturalKind](X) = X + 1 8.71/8.69 [isPLNat](X) = 2.X + 2 8.71/8.69 [isPLNatKind](X) = 2.X + 1 8.71/8.69 [natsFrom](X) = 2.X + 2 8.71/8.69 [sel](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [snd](X) = 2.X + 2 8.71/8.69 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [tail](X) = 2.X + 2 8.71/8.69 [take](X1,X2) = 2.X1 + X2 + 2 8.71/8.69 [0] = 2 8.71/8.69 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [nil] = 1 8.71/8.69 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.69 [s](X) = 2.X + 2 8.71/8.69 [tt] = 2 8.71/8.69 [U101#](X1,X2,X3) = X1 + X2 + X3 + 1 8.71/8.69 [U102#](X1,X2,X3) = X2 + X3 + 2 8.71/8.69 [U103#](X1,X2,X3) = X2 + X3 + 2 8.71/8.69 [U104#](X1,X2,X3) = X2 + X3 + 2 8.71/8.69 [U105#](X1,X2) = X2 + 2 8.71/8.69 [U181#](X1,X2) = 2.X2 + 2 8.71/8.69 [U182#](X1,X2) = X1 + X2 + 1 8.71/8.69 [U191#](X1,X2) = 2.X2 + 1 8.71/8.69 [U192#](X1,X2) = X1 + X2 8.71/8.69 [U201#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.69 [U202#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 8.71/8.69 [U203#](X1,X2,X3) = X1 + X2 + X3 + 2 8.71/8.69 [U204#](X1,X2,X3) = X2 + X3 + 2 8.71/8.69 [U205#](X1,X2) = X2 + 2 8.71/8.69 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.69 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.69 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.69 [U244#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.69 [U245#](X1,X2) = 2.X2 + 2 8.71/8.69 [U251#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.69 [U252#](X1,X2,X3) = X1 + X2 + 2.X3 + 2 8.71/8.69 [U253#](X1,X2,X3) = X1 + X2 + X3 + 2 8.71/8.69 [U254#](X1,X2,X3) = X2 + X3 + 2 8.71/8.69 [U255#](X1,X2) = X2 + 2 8.71/8.69 [U41#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.69 [U42#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 8.71/8.69 [U43#](X1,X2,X3) = X1 + X2 + X3 + 2 8.71/8.69 [U44#](X1,X2,X3) = X2 + X3 + 2 8.71/8.69 [U45#](X1,X2) = X2 + 2 8.71/8.69 [U51#](X1,X2,X3) = X1 + X2 + 2.X3 8.71/8.69 [U52#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.69 [U53#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.69 [U54#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.69 [U55#](X1,X2) = 2.X2 + 2 8.71/8.69 [U61#](X1,X2) = 2.X2 8.71/8.69 [U62#](X1,X2) = 2.X2 8.71/8.69 [U71#](X1,X2) = X1 + X2 + 2 8.71/8.69 [U72#](X1,X2) = X2 + 2 8.71/8.69 [U81#](X1,X2) = 2.X2 + 2 8.71/8.69 [U82#](X1,X2) = 2.X2 + 1 8.71/8.69 [U91#](X1,X2) = X1 + X2 + 2 8.71/8.69 [U92#](X1,X2) = X2 + 2 8.71/8.69 [ISLNAT](X) = X + 2 8.71/8.69 [ISNATURAL](X) = X + 2 8.71/8.69 [ISPLNAT](X) = 2.X 8.71/8.69 8.71/8.69 Problem 1.2: 8.71/8.69 8.71/8.69 SCC Processor: 8.71/8.69 -> Pairs: 8.71/8.69 U102#(tt,V1,V2) -> U103#(isLNatKind(V2),V1,V2) 8.71/8.69 U103#(tt,V1,V2) -> U104#(isLNatKind(V2),V1,V2) 8.71/8.69 U104#(tt,V1,V2) -> U105#(isNatural(V1),V2) 8.71/8.69 U104#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U105#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U181#(tt,V1) -> U182#(isLNatKind(V1),V1) 8.71/8.69 U182#(tt,V1) -> ISLNAT(V1) 8.71/8.69 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.71/8.69 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.69 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.69 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.69 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.69 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.69 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.69 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.69 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.69 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.69 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.69 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.69 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.69 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.69 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.69 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.69 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.69 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.69 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.69 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.69 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.69 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.69 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.69 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.69 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.69 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.69 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.69 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.69 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.69 ISLNAT(take(V1,V2)) -> U101#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.71/8.69 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.69 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.69 -> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 -> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 ->Strongly Connected Components: 8.71/8.69 ->->Cycle: 8.71/8.69 ->->-> Pairs: 8.71/8.69 U181#(tt,V1) -> U182#(isLNatKind(V1),V1) 8.71/8.69 U182#(tt,V1) -> ISLNAT(V1) 8.71/8.69 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.71/8.69 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.69 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.69 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.69 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.69 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.69 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.69 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.69 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.69 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.69 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.69 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.69 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.69 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.69 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.69 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.69 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.69 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.69 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.69 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.69 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.69 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.69 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.69 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.69 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.69 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.69 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.69 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.69 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.69 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.71/8.69 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.69 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.69 ->->-> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 ->->-> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 8.71/8.69 Problem 1.2: 8.71/8.69 8.71/8.69 Reduction Pairs Processor: 8.71/8.69 -> Pairs: 8.71/8.69 U181#(tt,V1) -> U182#(isLNatKind(V1),V1) 8.71/8.69 U182#(tt,V1) -> ISLNAT(V1) 8.71/8.69 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.71/8.69 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.69 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.69 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.69 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.69 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.69 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.69 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.69 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.69 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.69 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.69 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.69 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.69 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.69 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.69 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.69 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.69 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.69 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.69 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.69 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.69 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.69 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.69 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.69 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.69 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.69 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.69 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.69 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.69 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.69 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.69 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.69 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.69 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.69 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.71/8.69 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.69 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.69 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.69 -> Rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.69 U131(tt) -> tt 8.71/8.69 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.69 U211(tt) -> tt 8.71/8.69 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.69 U221(tt) -> tt 8.71/8.69 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U24(tt,X) -> X 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.69 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.69 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.69 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.69 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.69 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.69 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.69 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.69 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.69 U304(tt,Y) -> Y 8.71/8.69 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.69 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.69 U312(tt,XS) -> pair(nil,XS) 8.71/8.69 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.69 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.69 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.69 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.69 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.69 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.69 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.69 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.69 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.69 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.69 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.69 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.69 U334(tt,XS) -> XS 8.71/8.69 U34(tt,N) -> N 8.71/8.69 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.69 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.69 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.69 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.69 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.69 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.69 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.69 U46(tt) -> tt 8.71/8.69 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.69 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.69 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.69 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.69 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.69 U56(tt) -> tt 8.71/8.69 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.69 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.69 U63(tt) -> tt 8.71/8.69 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.69 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.69 U73(tt) -> tt 8.71/8.69 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.69 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.69 U83(tt) -> tt 8.71/8.69 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.69 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.69 U93(tt) -> tt 8.71/8.69 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.69 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.69 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.69 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.69 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.69 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.69 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.69 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.69 isLNat(nil) -> tt 8.71/8.69 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.69 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.69 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.69 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.69 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.69 isLNatKind(nil) -> tt 8.71/8.69 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.69 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.69 isNatural(0) -> tt 8.71/8.69 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.69 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.69 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.69 isNaturalKind(0) -> tt 8.71/8.69 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.69 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.69 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.69 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.69 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.69 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.69 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.69 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.69 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.69 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.69 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.69 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.69 -> Unhiding rules: 8.71/8.69 Empty 8.71/8.69 -> Usable rules: 8.71/8.69 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.69 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.69 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.69 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.69 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.69 U106(tt) -> tt 8.71/8.69 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.69 U112(tt) -> tt 8.71/8.69 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.69 U122(tt) -> tt 8.71/8.69 U131(tt) -> tt 8.71/8.69 U141(tt) -> tt 8.71/8.69 U151(tt) -> tt 8.71/8.69 U161(tt) -> tt 8.71/8.69 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.69 U172(tt) -> tt 8.71/8.69 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.69 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.69 U183(tt) -> tt 8.71/8.69 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.69 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.69 U193(tt) -> tt 8.71/8.69 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.69 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.69 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.69 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.69 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.69 U206(tt) -> tt 8.71/8.69 U211(tt) -> tt 8.71/8.69 U221(tt) -> tt 8.71/8.69 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.69 U232(tt) -> tt 8.71/8.69 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.69 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.69 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.69 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.69 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.69 U246(tt) -> tt 8.71/8.69 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.69 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.69 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.69 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.69 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.69 U256(tt) -> tt 8.71/8.69 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.69 U262(tt) -> tt 8.71/8.69 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.69 U272(tt) -> tt 8.71/8.69 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.69 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 ->Interpretation type: 8.71/8.70 Linear 8.71/8.70 ->Coefficients: 8.71/8.70 Natural Numbers 8.71/8.70 ->Dimension: 8.71/8.70 1 8.71/8.70 ->Bound: 8.71/8.70 2 8.71/8.70 ->Interpretation: 8.71/8.70 8.71/8.70 [U101](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.70 [U102](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U103](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U104](X1,X2,X3) = X1 + 2 8.71/8.70 [U105](X1,X2) = 2 8.71/8.70 [U106](X) = 2 8.71/8.70 [U111](X1,X2) = 2.X1 + 2.X2 8.71/8.70 [U112](X) = X + 1 8.71/8.70 [U121](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U122](X) = 2 8.71/8.70 [U131](X) = 2.X + 1 8.71/8.70 [U141](X) = X + 1 8.71/8.70 [U151](X) = X + 2 8.71/8.70 [U161](X) = 2.X + 2 8.71/8.70 [U171](X1,X2) = 2.X1 + 2.X2 8.71/8.70 [U172](X) = X + 2 8.71/8.70 [U181](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U182](X1,X2) = X1 + 1 8.71/8.70 [U183](X) = 2 8.71/8.70 [U191](X1,X2) = 2.X2 + 2 8.71/8.70 [U192](X1,X2) = 2.X2 + 2 8.71/8.70 [U193](X) = X 8.71/8.70 [U201](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.70 [U202](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U203](X1,X2,X3) = X1 8.71/8.70 [U204](X1,X2,X3) = 2 8.71/8.70 [U205](X1,X2) = 2 8.71/8.70 [U206](X) = 2 8.71/8.70 [U211](X) = X 8.71/8.70 [U221](X) = 2 8.71/8.70 [U231](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U232](X) = X + 2 8.71/8.70 [U241](X1,X2,X3) = 2.X1 + 2.X3 8.71/8.70 [U242](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U243](X1,X2,X3) = X1 + 2 8.71/8.70 [U244](X1,X2,X3) = 2 8.71/8.70 [U245](X1,X2) = 2 8.71/8.70 [U246](X) = 2 8.71/8.70 [U251](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.70 [U252](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U253](X1,X2,X3) = X1 + 2 8.71/8.70 [U254](X1,X2,X3) = 2 8.71/8.70 [U255](X1,X2) = 2 8.71/8.70 [U256](X) = 2 8.71/8.70 [U261](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U262](X) = 2 8.71/8.70 [U271](X1,X2) = 2 8.71/8.70 [U272](X) = 2 8.71/8.70 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 8.71/8.70 [U42](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U43](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U44](X1,X2,X3) = X1 + 2.X2 + 2 8.71/8.70 [U45](X1,X2) = X1 + 2 8.71/8.70 [U46](X) = 2 8.71/8.70 [U51](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U52](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U53](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U54](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U55](X1,X2) = X1 + 2.X2 8.71/8.70 [U56](X) = X 8.71/8.70 [U61](X1,X2) = 2.X1 + 2 8.71/8.70 [U62](X1,X2) = 2 8.71/8.70 [U63](X) = 2 8.71/8.70 [U71](X1,X2) = X1 + 2.X2 8.71/8.70 [U72](X1,X2) = X1 8.71/8.70 [U73](X) = 2 8.71/8.70 [U81](X1,X2) = 2.X1 + 2 8.71/8.70 [U82](X1,X2) = 2 8.71/8.70 [U83](X) = 2 8.71/8.70 [U91](X1,X2) = X1 + 2.X2 8.71/8.70 [U92](X1,X2) = X1 + 1 8.71/8.70 [U93](X) = 2 8.71/8.70 [afterNth](X1,X2) = 2.X1 + X2 + 2 8.71/8.70 [fst](X) = 2.X + 2 8.71/8.70 [head](X) = 2.X + 2 8.71/8.70 [isLNat](X) = 2.X + 2 8.71/8.70 [isLNatKind](X) = 2.X 8.71/8.70 [isNatural](X) = 2.X + 2 8.71/8.70 [isNaturalKind](X) = 2.X + 2 8.71/8.70 [isPLNat](X) = 2.X + 2 8.71/8.70 [isPLNatKind](X) = 2.X + 1 8.71/8.70 [natsFrom](X) = 2.X + 2 8.71/8.70 [sel](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [snd](X) = 2.X + 2 8.71/8.70 [splitAt](X1,X2) = 2.X1 + 2.X2 + 1 8.71/8.70 [tail](X) = 2.X + 1 8.71/8.70 [take](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [0] = 0 8.71/8.70 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [nil] = 2 8.71/8.70 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [s](X) = X 8.71/8.70 [tt] = 2 8.71/8.70 [U181#](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U182#](X1,X2) = 2.X2 + 2 8.71/8.70 [U191#](X1,X2) = 2.X2 + 1 8.71/8.70 [U192#](X1,X2) = 2.X2 + 1 8.71/8.70 [U201#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U202#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U203#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U204#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U205#](X1,X2) = 2.X2 + 2 8.71/8.70 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U245#](X1,X2) = 2.X2 + 2 8.71/8.70 [U251#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U252#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U253#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U254#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U255#](X1,X2) = 2.X2 + 2 8.71/8.70 [U41#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U42#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U45#](X1,X2) = 2.X2 + 2 8.71/8.70 [U51#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U52#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U55#](X1,X2) = X1 + 2.X2 8.71/8.70 [U61#](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U62#](X1,X2) = 2.X2 + 2 8.71/8.70 [U71#](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U72#](X1,X2) = 2.X2 + 2 8.71/8.70 [U81#](X1,X2) = X1 + 2.X2 + 1 8.71/8.70 [U82#](X1,X2) = 2.X2 + 2 8.71/8.70 [U91#](X1,X2) = 2.X2 + 2 8.71/8.70 [U92#](X1,X2) = 2.X2 + 2 8.71/8.70 [ISLNAT](X) = 2.X + 2 8.71/8.70 [ISNATURAL](X) = 2.X + 1 8.71/8.70 [ISPLNAT](X) = 2.X + 2 8.71/8.70 8.71/8.70 Problem 1.2: 8.71/8.70 8.71/8.70 SCC Processor: 8.71/8.70 -> Pairs: 8.71/8.70 U182#(tt,V1) -> ISLNAT(V1) 8.71/8.70 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.71/8.70 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.70 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.70 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.70 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.70 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.70 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.70 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.70 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.70 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.70 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.70 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.70 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.70 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.70 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.70 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.70 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.70 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.70 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.70 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.70 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.70 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.70 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.70 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.70 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.70 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.70 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.70 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.70 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.70 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(head(V1)) -> U181#(isLNatKind(V1),V1) 8.71/8.70 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.70 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.70 -> Rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.70 U131(tt) -> tt 8.71/8.70 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.70 U211(tt) -> tt 8.71/8.70 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.70 U221(tt) -> tt 8.71/8.70 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U24(tt,X) -> X 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.70 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.70 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.70 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.70 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.70 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.70 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.70 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.70 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.70 U304(tt,Y) -> Y 8.71/8.70 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.70 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.70 U312(tt,XS) -> pair(nil,XS) 8.71/8.70 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.70 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.70 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.70 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.70 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.70 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.70 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.70 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.70 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.70 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.70 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.70 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.70 U334(tt,XS) -> XS 8.71/8.70 U34(tt,N) -> N 8.71/8.70 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.70 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.70 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.70 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.70 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.70 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.70 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.70 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.70 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.70 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.70 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.70 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.70 -> Unhiding rules: 8.71/8.70 Empty 8.71/8.70 ->Strongly Connected Components: 8.71/8.70 ->->Cycle: 8.71/8.70 ->->-> Pairs: 8.71/8.70 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.71/8.70 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.70 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.70 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.70 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.70 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.70 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.70 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.70 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.70 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.70 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.70 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.70 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.70 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.70 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.70 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.70 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.70 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.70 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.70 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.70 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.70 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.70 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.70 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.70 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.70 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.70 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.70 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.70 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.70 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.70 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.70 ->->-> Rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.70 U131(tt) -> tt 8.71/8.70 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.70 U211(tt) -> tt 8.71/8.70 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.70 U221(tt) -> tt 8.71/8.70 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U24(tt,X) -> X 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.70 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.70 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.70 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.70 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.70 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.70 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.70 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.70 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.70 U304(tt,Y) -> Y 8.71/8.70 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.70 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.70 U312(tt,XS) -> pair(nil,XS) 8.71/8.70 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.70 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.70 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.70 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.70 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.70 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.70 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.70 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.70 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.70 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.70 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.70 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.70 U334(tt,XS) -> XS 8.71/8.70 U34(tt,N) -> N 8.71/8.70 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.70 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.70 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.70 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.70 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.70 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.70 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.70 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.70 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.70 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.70 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.70 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.70 ->->-> Unhiding rules: 8.71/8.70 Empty 8.71/8.70 8.71/8.70 Problem 1.2: 8.71/8.70 8.71/8.70 Reduction Pairs Processor: 8.71/8.70 -> Pairs: 8.71/8.70 U191#(tt,V1) -> U192#(isNaturalKind(V1),V1) 8.71/8.70 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.70 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.70 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.70 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.70 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.70 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.70 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.70 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.70 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.70 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.70 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.70 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.70 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.70 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.70 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.70 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.70 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.70 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.70 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.70 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.70 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.70 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.70 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.70 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.70 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.70 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.70 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.70 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.70 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.70 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.70 -> Rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.70 U131(tt) -> tt 8.71/8.70 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.70 U211(tt) -> tt 8.71/8.70 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.70 U221(tt) -> tt 8.71/8.70 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U24(tt,X) -> X 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.70 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.70 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.70 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.70 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.70 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.70 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.70 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.70 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.70 U304(tt,Y) -> Y 8.71/8.70 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.70 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.70 U312(tt,XS) -> pair(nil,XS) 8.71/8.70 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.70 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.70 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.70 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.70 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.70 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.70 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.70 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.70 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.70 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.70 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.70 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.70 U334(tt,XS) -> XS 8.71/8.70 U34(tt,N) -> N 8.71/8.70 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.70 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.70 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.70 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.70 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.70 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.70 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.70 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.70 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.70 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.70 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.70 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.70 -> Unhiding rules: 8.71/8.70 Empty 8.71/8.70 -> Usable rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U131(tt) -> tt 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U211(tt) -> tt 8.71/8.70 U221(tt) -> tt 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 ->Interpretation type: 8.71/8.70 Linear 8.71/8.70 ->Coefficients: 8.71/8.70 Natural Numbers 8.71/8.70 ->Dimension: 8.71/8.70 1 8.71/8.70 ->Bound: 8.71/8.70 2 8.71/8.70 ->Interpretation: 8.71/8.70 8.71/8.70 [U101](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.70 [U102](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.70 [U103](X1,X2,X3) = 2.X1 + 2 8.71/8.70 [U104](X1,X2,X3) = 2 8.71/8.70 [U105](X1,X2) = 2 8.71/8.70 [U106](X) = 2 8.71/8.70 [U111](X1,X2) = 2.X2 + 1 8.71/8.70 [U112](X) = X 8.71/8.70 [U121](X1,X2) = 2.X2 + 2 8.71/8.70 [U122](X) = 2.X + 2 8.71/8.70 [U131](X) = X + 2 8.71/8.70 [U141](X) = 2 8.71/8.70 [U151](X) = X + 2 8.71/8.70 [U161](X) = 2.X + 1 8.71/8.70 [U171](X1,X2) = X1 + X2 8.71/8.70 [U172](X) = X 8.71/8.70 [U181](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U182](X1,X2) = 2.X1 + 2 8.71/8.70 [U183](X) = 2 8.71/8.70 [U191](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U192](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U193](X) = X + 2 8.71/8.70 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U203](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U204](X1,X2,X3) = 2.X1 + 2.X2 + 2 8.71/8.70 [U205](X1,X2) = 2 8.71/8.70 [U206](X) = 2 8.71/8.70 [U211](X) = 2 8.71/8.70 [U221](X) = 2 8.71/8.70 [U231](X1,X2) = 2 8.71/8.70 [U232](X) = 2 8.71/8.70 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U242](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.70 [U243](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U244](X1,X2,X3) = 2.X1 + 2 8.71/8.70 [U245](X1,X2) = 2 8.71/8.70 [U246](X) = 2 8.71/8.70 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U252](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U253](X1,X2,X3) = X1 + 2.X2 + X3 + 2 8.71/8.70 [U254](X1,X2,X3) = X1 + 2.X2 + 2 8.71/8.70 [U255](X1,X2) = X1 8.71/8.70 [U256](X) = 2 8.71/8.70 [U261](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U262](X) = 2.X 8.71/8.70 [U271](X1,X2) = X1 + 2 8.71/8.70 [U272](X) = 2 8.71/8.70 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U42](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.70 [U43](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U44](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U45](X1,X2) = 2.X2 + 2 8.71/8.70 [U46](X) = X 8.71/8.70 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U52](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U53](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U54](X1,X2,X3) = 2.X1 + 2.X2 + 1 8.71/8.70 [U55](X1,X2) = X1 + 2 8.71/8.70 [U56](X) = 2 8.71/8.70 [U61](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U62](X1,X2) = X1 + 2 8.71/8.70 [U63](X) = 2 8.71/8.70 [U71](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U72](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U73](X) = X + 2 8.71/8.70 [U81](X1,X2) = X1 + 2.X2 + 1 8.71/8.70 [U82](X1,X2) = 2.X2 + 2 8.71/8.70 [U83](X) = 2 8.71/8.70 [U91](X1,X2) = X1 + 2.X2 + 1 8.71/8.70 [U92](X1,X2) = 2.X1 + 2 8.71/8.70 [U93](X) = 2 8.71/8.70 [afterNth](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [fst](X) = 2.X + 2 8.71/8.70 [head](X) = 2.X + 2 8.71/8.70 [isLNat](X) = 2.X + 2 8.71/8.70 [isLNatKind](X) = X 8.71/8.70 [isNatural](X) = 2.X + 2 8.71/8.70 [isNaturalKind](X) = 2 8.71/8.70 [isPLNat](X) = 2.X + 2 8.71/8.70 [isPLNatKind](X) = 2.X 8.71/8.70 [natsFrom](X) = 2.X + 2 8.71/8.70 [sel](X1,X2) = 2.X1 + X2 + 2 8.71/8.70 [snd](X) = 2.X + 2 8.71/8.70 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [tail](X) = 2.X + 2 8.71/8.70 [take](X1,X2) = X2 + 2 8.71/8.70 [0] = 2 8.71/8.70 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [nil] = 2 8.71/8.70 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [s](X) = X + 2 8.71/8.70 [tt] = 2 8.71/8.70 [U191#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U192#](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U201#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U202#](X1,X2,X3) = X1 + 2.X2 + 2.X3 8.71/8.70 [U203#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U204#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U205#](X1,X2) = X1 + 2.X2 8.71/8.70 [U241#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U245#](X1,X2) = X1 + 2.X2 8.71/8.70 [U251#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U252#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U253#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U254#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U255#](X1,X2) = X1 + 2.X2 8.71/8.70 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U42#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U45#](X1,X2) = 2.X2 + 2 8.71/8.70 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 8.71/8.70 [U52#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U55#](X1,X2) = 2.X2 + 2 8.71/8.70 [U61#](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U62#](X1,X2) = 2.X2 + 2 8.71/8.70 [U71#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U72#](X1,X2) = 2.X1 + 2.X2 8.71/8.70 [U81#](X1,X2) = X1 + 2.X2 8.71/8.70 [U82#](X1,X2) = 2.X2 + 2 8.71/8.70 [U91#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U92#](X1,X2) = 2.X2 + 2 8.71/8.70 [ISLNAT](X) = 2.X + 2 8.71/8.70 [ISNATURAL](X) = 2.X + 2 8.71/8.70 [ISPLNAT](X) = 2.X + 2 8.71/8.70 8.71/8.70 Problem 1.2: 8.71/8.70 8.71/8.70 SCC Processor: 8.71/8.70 -> Pairs: 8.71/8.70 U192#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.70 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.70 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.70 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.70 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.70 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.70 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.70 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.70 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.70 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.70 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.70 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.70 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.70 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.70 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.70 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.70 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.70 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.70 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.70 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.70 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.70 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.70 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.70 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.70 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.70 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.70 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.70 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.70 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(s(V1)) -> U191#(isNaturalKind(V1),V1) 8.71/8.70 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.70 -> Rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.70 U131(tt) -> tt 8.71/8.70 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.70 U211(tt) -> tt 8.71/8.70 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.70 U221(tt) -> tt 8.71/8.70 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U24(tt,X) -> X 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.70 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.70 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.70 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.70 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.70 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.70 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.70 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.70 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.70 U304(tt,Y) -> Y 8.71/8.70 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.70 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.70 U312(tt,XS) -> pair(nil,XS) 8.71/8.70 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.70 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.70 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.70 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.70 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.70 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.70 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.70 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.70 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.70 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.70 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.70 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.70 U334(tt,XS) -> XS 8.71/8.70 U34(tt,N) -> N 8.71/8.70 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.70 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.70 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.70 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.70 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.70 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.70 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.70 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.70 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.70 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.70 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.70 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.70 -> Unhiding rules: 8.71/8.70 Empty 8.71/8.70 ->Strongly Connected Components: 8.71/8.70 ->->Cycle: 8.71/8.70 ->->-> Pairs: 8.71/8.70 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.70 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.70 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.70 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.70 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.70 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.70 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.70 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.70 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.70 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.70 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.70 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.70 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.70 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.70 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.70 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.70 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.70 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.70 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.70 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.70 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.70 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.70 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.70 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.70 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.70 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.70 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.70 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.70 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.70 ->->-> Rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.70 U131(tt) -> tt 8.71/8.70 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.70 U211(tt) -> tt 8.71/8.70 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.70 U221(tt) -> tt 8.71/8.70 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U24(tt,X) -> X 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.70 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.70 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.70 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.70 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.70 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.70 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.70 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.70 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.70 U304(tt,Y) -> Y 8.71/8.70 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.70 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.70 U312(tt,XS) -> pair(nil,XS) 8.71/8.70 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.70 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.70 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.70 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.70 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.70 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.70 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.70 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.70 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.70 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.70 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.70 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.70 U334(tt,XS) -> XS 8.71/8.70 U34(tt,N) -> N 8.71/8.70 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.70 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.70 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.70 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.70 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.70 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.70 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.70 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.70 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.70 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.70 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.70 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.70 ->->-> Unhiding rules: 8.71/8.70 Empty 8.71/8.70 8.71/8.70 Problem 1.2: 8.71/8.70 8.71/8.70 Reduction Pairs Processor: 8.71/8.70 -> Pairs: 8.71/8.70 U201#(tt,V1,V2) -> U202#(isNaturalKind(V1),V1,V2) 8.71/8.70 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.70 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.70 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.70 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.70 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.70 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.70 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.70 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.70 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.70 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.70 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.70 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.70 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.70 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.70 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.70 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.70 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.70 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.70 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.70 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.70 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.70 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.70 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.70 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.70 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.70 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.70 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.70 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.70 -> Rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.70 U131(tt) -> tt 8.71/8.70 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.70 U211(tt) -> tt 8.71/8.70 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.70 U221(tt) -> tt 8.71/8.70 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U24(tt,X) -> X 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.70 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.70 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.70 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.70 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.70 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.70 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.70 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.70 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.70 U304(tt,Y) -> Y 8.71/8.70 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.70 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.70 U312(tt,XS) -> pair(nil,XS) 8.71/8.70 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.70 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.70 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.70 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.70 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.70 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.70 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.70 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.70 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.70 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.70 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.70 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.70 U334(tt,XS) -> XS 8.71/8.70 U34(tt,N) -> N 8.71/8.70 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.70 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.70 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.70 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.70 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.70 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.70 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.70 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.70 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.70 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.70 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.70 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.70 -> Unhiding rules: 8.71/8.70 Empty 8.71/8.70 -> Usable rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U131(tt) -> tt 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U211(tt) -> tt 8.71/8.70 U221(tt) -> tt 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.70 U83(tt) -> tt 8.71/8.70 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.70 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.70 U93(tt) -> tt 8.71/8.70 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.70 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.70 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.70 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.70 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.70 isLNat(nil) -> tt 8.71/8.70 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.70 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.70 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.70 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.70 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.70 isLNatKind(nil) -> tt 8.71/8.70 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.70 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.70 isNatural(0) -> tt 8.71/8.70 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.70 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.70 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.70 isNaturalKind(0) -> tt 8.71/8.70 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.70 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.70 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.70 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.70 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.70 ->Interpretation type: 8.71/8.70 Linear 8.71/8.70 ->Coefficients: 8.71/8.70 Natural Numbers 8.71/8.70 ->Dimension: 8.71/8.70 1 8.71/8.70 ->Bound: 8.71/8.70 2 8.71/8.70 ->Interpretation: 8.71/8.70 8.71/8.70 [U101](X1,X2,X3) = X1 + 2.X2 + 2 8.71/8.70 [U102](X1,X2,X3) = 2.X1 + 2 8.71/8.70 [U103](X1,X2,X3) = 2 8.71/8.70 [U104](X1,X2,X3) = 2 8.71/8.70 [U105](X1,X2) = 2 8.71/8.70 [U106](X) = 2 8.71/8.70 [U111](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U112](X) = X + 2 8.71/8.70 [U121](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U122](X) = X + 2 8.71/8.70 [U131](X) = 2 8.71/8.70 [U141](X) = 2 8.71/8.70 [U151](X) = 2 8.71/8.70 [U161](X) = X 8.71/8.70 [U171](X1,X2) = 2.X1 + 2 8.71/8.70 [U172](X) = 2 8.71/8.70 [U181](X1,X2) = X1 + 2 8.71/8.70 [U182](X1,X2) = 2 8.71/8.70 [U183](X) = 2 8.71/8.70 [U191](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U192](X1,X2) = 2.X1 + 2 8.71/8.70 [U193](X) = 2 8.71/8.70 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U202](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.70 [U203](X1,X2,X3) = X1 + 2 8.71/8.70 [U204](X1,X2,X3) = 2 8.71/8.70 [U205](X1,X2) = 2 8.71/8.70 [U206](X) = 2 8.71/8.70 [U211](X) = X + 2 8.71/8.70 [U221](X) = X + 2 8.71/8.70 [U231](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U232](X) = 2 8.71/8.70 [U241](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.70 [U242](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U243](X1,X2,X3) = 2.X3 + 2 8.71/8.70 [U244](X1,X2,X3) = X1 8.71/8.70 [U245](X1,X2) = 2 8.71/8.70 [U246](X) = 2 8.71/8.70 [U251](X1,X2,X3) = X1 + X2 + 2.X3 + 2 8.71/8.70 [U252](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.70 [U253](X1,X2,X3) = X1 + 2 8.71/8.70 [U254](X1,X2,X3) = 2 8.71/8.70 [U255](X1,X2) = 2 8.71/8.70 [U256](X) = 2 8.71/8.70 [U261](X1,X2) = 2 8.71/8.70 [U262](X) = 2 8.71/8.70 [U271](X1,X2) = 2 8.71/8.70 [U272](X) = 2 8.71/8.70 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U42](X1,X2,X3) = X1 + X2 + 2.X3 + 2 8.71/8.70 [U43](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.70 [U44](X1,X2,X3) = X1 + X2 + 1 8.71/8.70 [U45](X1,X2) = 2 8.71/8.70 [U46](X) = 2 8.71/8.70 [U51](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U52](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.70 [U53](X1,X2,X3) = X1 + 2 8.71/8.70 [U54](X1,X2,X3) = 2 8.71/8.70 [U55](X1,X2) = 2 8.71/8.70 [U56](X) = 2 8.71/8.70 [U61](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U62](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U63](X) = 2.X + 2 8.71/8.70 [U71](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [U72](X1,X2) = 2.X1 + 2 8.71/8.70 [U73](X) = 2 8.71/8.70 [U81](X1,X2) = 2.X1 + 2 8.71/8.70 [U82](X1,X2) = 2.X1 + 1 8.71/8.70 [U83](X) = 2 8.71/8.70 [U91](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U92](X1,X2) = X1 + 2 8.71/8.70 [U93](X) = 2 8.71/8.70 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [fst](X) = 2.X + 2 8.71/8.70 [head](X) = 2.X + 2 8.71/8.70 [isLNat](X) = 2.X + 2 8.71/8.70 [isLNatKind](X) = 2.X + 1 8.71/8.70 [isNatural](X) = 2.X + 2 8.71/8.70 [isNaturalKind](X) = X + 1 8.71/8.70 [isPLNat](X) = X + 2 8.71/8.70 [isPLNatKind](X) = 2 8.71/8.70 [natsFrom](X) = 2.X + 2 8.71/8.70 [sel](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [snd](X) = 2.X + 2 8.71/8.70 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [tail](X) = 2.X + 1 8.71/8.70 [take](X1,X2) = 2.X1 + 2 8.71/8.70 [0] = 1 8.71/8.70 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [nil] = 2 8.71/8.70 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.70 [s](X) = 2.X + 2 8.71/8.70 [tt] = 2 8.71/8.70 [U201#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 8.71/8.70 [U202#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.70 [U203#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.70 [U204#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.70 [U205#](X1,X2) = 2.X2 + 2 8.71/8.70 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 8.71/8.70 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U245#](X1,X2) = X1 + 2.X2 8.71/8.70 [U251#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U252#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 8.71/8.70 [U253#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.70 [U254#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.70 [U255#](X1,X2) = 2.X2 + 2 8.71/8.70 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.70 [U42#](X1,X2,X3) = X1 + X2 + 2.X3 + 2 8.71/8.70 [U43#](X1,X2,X3) = X2 + 2.X3 + 2 8.71/8.70 [U44#](X1,X2,X3) = X2 + 2.X3 8.71/8.70 [U45#](X1,X2) = 2.X2 8.71/8.70 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.70 [U52#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.70 [U55#](X1,X2) = X1 + 2.X2 8.71/8.70 [U61#](X1,X2) = 2.X1 + 2.X2 8.71/8.70 [U62#](X1,X2) = 2.X1 + 2.X2 8.71/8.70 [U71#](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U72#](X1,X2) = X1 + X2 + 2 8.71/8.70 [U81#](X1,X2) = X1 + 2.X2 + 2 8.71/8.70 [U82#](X1,X2) = 2.X1 + 2.X2 8.71/8.70 [U91#](X1,X2) = 2.X2 + 2 8.71/8.70 [U92#](X1,X2) = 2.X2 8.71/8.70 [ISLNAT](X) = 2.X 8.71/8.70 [ISNATURAL](X) = X 8.71/8.70 [ISPLNAT](X) = 2.X + 2 8.71/8.70 8.71/8.70 Problem 1.2: 8.71/8.70 8.71/8.70 SCC Processor: 8.71/8.70 -> Pairs: 8.71/8.70 U202#(tt,V1,V2) -> U203#(isLNatKind(V2),V1,V2) 8.71/8.70 U203#(tt,V1,V2) -> U204#(isLNatKind(V2),V1,V2) 8.71/8.70 U204#(tt,V1,V2) -> U205#(isNatural(V1),V2) 8.71/8.70 U204#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U205#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.70 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.70 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.70 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.70 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.70 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.70 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.70 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.70 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.70 U254#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.70 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.70 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.70 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.70 U44#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.70 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.70 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.70 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.70 U54#(tt,V1,V2) -> ISNATURAL(V1) 8.71/8.70 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.70 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.70 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U71#(tt,V1) -> U72#(isNaturalKind(V1),V1) 8.71/8.70 U72#(tt,V1) -> ISNATURAL(V1) 8.71/8.70 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.70 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.70 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.70 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.70 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(natsFrom(V1)) -> U71#(isNaturalKind(V1),V1) 8.71/8.70 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.70 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.70 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISNATURAL(sel(V1,V2)) -> U201#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.70 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.70 -> Rules: 8.71/8.70 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.70 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.70 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.70 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.70 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.70 U106(tt) -> tt 8.71/8.70 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.70 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.70 U112(tt) -> tt 8.71/8.70 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.70 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.70 U122(tt) -> tt 8.71/8.70 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.70 U131(tt) -> tt 8.71/8.70 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.70 U141(tt) -> tt 8.71/8.70 U151(tt) -> tt 8.71/8.70 U161(tt) -> tt 8.71/8.70 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.70 U172(tt) -> tt 8.71/8.70 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.70 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.70 U183(tt) -> tt 8.71/8.70 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.70 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.70 U193(tt) -> tt 8.71/8.70 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.70 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.70 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.70 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.70 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.70 U206(tt) -> tt 8.71/8.70 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.70 U211(tt) -> tt 8.71/8.70 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.70 U221(tt) -> tt 8.71/8.70 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.70 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.70 U232(tt) -> tt 8.71/8.70 U24(tt,X) -> X 8.71/8.70 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.70 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.70 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.70 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.70 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.70 U246(tt) -> tt 8.71/8.70 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.70 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.70 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.70 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.70 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.70 U256(tt) -> tt 8.71/8.70 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.70 U262(tt) -> tt 8.71/8.70 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.70 U272(tt) -> tt 8.71/8.70 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.70 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.70 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.70 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.70 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.70 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.70 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.70 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.70 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.70 U304(tt,Y) -> Y 8.71/8.70 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.70 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.70 U312(tt,XS) -> pair(nil,XS) 8.71/8.70 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.70 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.70 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.70 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.70 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.70 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.70 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.70 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.70 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.70 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.70 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.70 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.70 U334(tt,XS) -> XS 8.71/8.70 U34(tt,N) -> N 8.71/8.70 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.70 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.70 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.70 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.70 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.70 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.70 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.70 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.70 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.70 U46(tt) -> tt 8.71/8.70 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.70 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.70 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.70 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.70 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.70 U56(tt) -> tt 8.71/8.70 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.70 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.70 U63(tt) -> tt 8.71/8.70 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.70 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.70 U73(tt) -> tt 8.71/8.70 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.70 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 -> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 ->Strongly Connected Components: 8.71/8.71 ->->Cycle: 8.71/8.71 ->->-> Pairs: 8.71/8.71 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.71 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.71 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.71 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.71 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.71 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.71 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.71 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.71 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.71 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.71 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.71 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.71 ->->-> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 ->->-> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 8.71/8.71 Problem 1.2: 8.71/8.71 8.71/8.71 Reduction Pairs Processor: 8.71/8.71 -> Pairs: 8.71/8.71 U241#(tt,V1,V2) -> U242#(isLNatKind(V1),V1,V2) 8.71/8.71 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.71 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.71 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.71 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.71 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.71 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.71 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.71 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.71 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.71 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.71 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.71 -> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 -> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 -> Usable rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U131(tt) -> tt 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U211(tt) -> tt 8.71/8.71 U221(tt) -> tt 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 ->Interpretation type: 8.71/8.71 Linear 8.71/8.71 ->Coefficients: 8.71/8.71 Natural Numbers 8.71/8.71 ->Dimension: 8.71/8.71 1 8.71/8.71 ->Bound: 8.71/8.71 2 8.71/8.71 ->Interpretation: 8.71/8.71 8.71/8.71 [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U102](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U103](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U104](X1,X2,X3) = X1 + 2.X2 8.71/8.71 [U105](X1,X2) = X1 + 2 8.71/8.71 [U106](X) = 2 8.71/8.71 [U111](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U112](X) = X + 2 8.71/8.71 [U121](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U122](X) = X + 2 8.71/8.71 [U131](X) = X + 2 8.71/8.71 [U141](X) = X + 1 8.71/8.71 [U151](X) = X + 1 8.71/8.71 [U161](X) = X 8.71/8.71 [U171](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U172](X) = X 8.71/8.71 [U181](X1,X2) = 2.X2 + 2 8.71/8.71 [U182](X1,X2) = 2.X2 + 2 8.71/8.71 [U183](X) = 2 8.71/8.71 [U191](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U192](X1,X2) = 2.X1 + 2.X2 8.71/8.71 [U193](X) = X + 2 8.71/8.71 [U201](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.71 [U203](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U204](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U205](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U206](X) = X + 1 8.71/8.71 [U211](X) = 2 8.71/8.71 [U221](X) = 2 8.71/8.71 [U231](X1,X2) = 2 8.71/8.71 [U232](X) = 2 8.71/8.71 [U241](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U242](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.71 [U243](X1,X2,X3) = 2.X3 + 2 8.71/8.71 [U244](X1,X2,X3) = X1 8.71/8.71 [U245](X1,X2) = 2 8.71/8.71 [U246](X) = 2 8.71/8.71 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U252](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 8.71/8.71 [U253](X1,X2,X3) = X1 + 2.X2 + 2 8.71/8.71 [U254](X1,X2,X3) = 2.X2 + 2 8.71/8.71 [U255](X1,X2) = X1 + 2 8.71/8.71 [U256](X) = 2 8.71/8.71 [U261](X1,X2) = 2 8.71/8.71 [U262](X) = 2 8.71/8.71 [U271](X1,X2) = 2 8.71/8.71 [U272](X) = 2 8.71/8.71 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U42](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U43](X1,X2,X3) = X1 + 2.X2 + 2 8.71/8.71 [U44](X1,X2,X3) = 2.X2 + 2 8.71/8.71 [U45](X1,X2) = X1 + 2 8.71/8.71 [U46](X) = 2 8.71/8.71 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U52](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U53](X1,X2,X3) = X1 + 2.X2 8.71/8.71 [U54](X1,X2,X3) = 2.X2 + 2 8.71/8.71 [U55](X1,X2) = X1 + 2 8.71/8.71 [U56](X) = 2 8.71/8.71 [U61](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U62](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U63](X) = X + 2 8.71/8.71 [U71](X1,X2) = 2.X2 + 2 8.71/8.71 [U72](X1,X2) = 2.X2 + 2 8.71/8.71 [U73](X) = X + 2 8.71/8.71 [U81](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U82](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U83](X) = X + 2 8.71/8.71 [U91](X1,X2) = 2.X2 + 2 8.71/8.71 [U92](X1,X2) = 2.X2 + 2 8.71/8.71 [U93](X) = X 8.71/8.71 [afterNth](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [fst](X) = 2.X + 2 8.71/8.71 [head](X) = 2.X + 1 8.71/8.71 [isLNat](X) = 2.X + 2 8.71/8.71 [isLNatKind](X) = 2.X + 2 8.71/8.71 [isNatural](X) = 2.X 8.71/8.71 [isNaturalKind](X) = 2 8.71/8.71 [isPLNat](X) = 2.X + 2 8.71/8.71 [isPLNatKind](X) = 2 8.71/8.71 [natsFrom](X) = 2.X + 2 8.71/8.71 [sel](X1,X2) = 2.X1 + X2 + 2 8.71/8.71 [snd](X) = X + 2 8.71/8.71 [splitAt](X1,X2) = 2.X1 + X2 + 2 8.71/8.71 [tail](X) = X 8.71/8.71 [take](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [0] = 2 8.71/8.71 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [nil] = 1 8.71/8.71 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [s](X) = 2.X + 2 8.71/8.71 [tt] = 2 8.71/8.71 [U241#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U242#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U243#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U244#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U245#](X1,X2) = 2.X2 + 2 8.71/8.71 [U251#](X1,X2,X3) = 2.X1 + 2.X3 + 1 8.71/8.71 [U252#](X1,X2,X3) = 2.X1 + 2.X3 + 1 8.71/8.71 [U253#](X1,X2,X3) = 2.X3 + 2 8.71/8.71 [U254#](X1,X2,X3) = 2.X3 + 2 8.71/8.71 [U255#](X1,X2) = 2.X2 + 2 8.71/8.71 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U42#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U45#](X1,X2) = 2.X2 + 2 8.71/8.71 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U52#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U55#](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U61#](X1,X2) = 2.X2 + 2 8.71/8.71 [U62#](X1,X2) = 2.X2 + 2 8.71/8.71 [U81#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U82#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U91#](X1,X2) = 2.X2 + 2 8.71/8.71 [U92#](X1,X2) = 2.X2 + 2 8.71/8.71 [ISLNAT](X) = 2.X + 2 8.71/8.71 [ISPLNAT](X) = 2.X + 2 8.71/8.71 8.71/8.71 Problem 1.2: 8.71/8.71 8.71/8.71 SCC Processor: 8.71/8.71 -> Pairs: 8.71/8.71 U242#(tt,V1,V2) -> U243#(isLNatKind(V2),V1,V2) 8.71/8.71 U243#(tt,V1,V2) -> U244#(isLNatKind(V2),V1,V2) 8.71/8.71 U244#(tt,V1,V2) -> U245#(isLNat(V1),V2) 8.71/8.71 U244#(tt,V1,V2) -> ISLNAT(V1) 8.71/8.71 U245#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.71 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.71 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.71 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.71 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.71 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.71 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(pair(V1,V2)) -> U241#(isLNatKind(V1),V1,V2) 8.71/8.71 -> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 -> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 ->Strongly Connected Components: 8.71/8.71 ->->Cycle: 8.71/8.71 ->->-> Pairs: 8.71/8.71 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.71 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.71 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.71 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.71 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.71 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.71 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.71 ->->-> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 ->->-> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 8.71/8.71 Problem 1.2: 8.71/8.71 8.71/8.71 Reduction Pairs Processor: 8.71/8.71 -> Pairs: 8.71/8.71 U251#(tt,V1,V2) -> U252#(isNaturalKind(V1),V1,V2) 8.71/8.71 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.71 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.71 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.71 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.71 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.71 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.71 -> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 -> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 -> Usable rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U131(tt) -> tt 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U211(tt) -> tt 8.71/8.71 U221(tt) -> tt 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 ->Interpretation type: 8.71/8.71 Linear 8.71/8.71 ->Coefficients: 8.71/8.71 Natural Numbers 8.71/8.71 ->Dimension: 8.71/8.71 1 8.71/8.71 ->Bound: 8.71/8.71 2 8.71/8.71 ->Interpretation: 8.71/8.71 8.71/8.71 [U101](X1,X2,X3) = X1 + 2 8.71/8.71 [U102](X1,X2,X3) = 2 8.71/8.71 [U103](X1,X2,X3) = 2 8.71/8.71 [U104](X1,X2,X3) = X1 8.71/8.71 [U105](X1,X2) = 2 8.71/8.71 [U106](X) = 2 8.71/8.71 [U111](X1,X2) = 2 8.71/8.71 [U112](X) = 2 8.71/8.71 [U121](X1,X2) = 2 8.71/8.71 [U122](X) = 2 8.71/8.71 [U131](X) = 2 8.71/8.71 [U141](X) = 2 8.71/8.71 [U151](X) = 2 8.71/8.71 [U161](X) = 2 8.71/8.71 [U171](X1,X2) = 2 8.71/8.71 [U172](X) = X 8.71/8.71 [U181](X1,X2) = X1 + 2 8.71/8.71 [U182](X1,X2) = X1 + 2 8.71/8.71 [U183](X) = 2 8.71/8.71 [U191](X1,X2) = 2.X1 8.71/8.71 [U192](X1,X2) = X1 8.71/8.71 [U193](X) = 2 8.71/8.71 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.71 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.71 [U203](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U204](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U205](X1,X2) = 2.X2 + 2 8.71/8.71 [U206](X) = X 8.71/8.71 [U211](X) = X 8.71/8.71 [U221](X) = 2 8.71/8.71 [U231](X1,X2) = X1 8.71/8.71 [U232](X) = 2 8.71/8.71 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 8.71/8.71 [U242](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.71 [U243](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U244](X1,X2,X3) = X1 + 2.X2 + 2.X3 8.71/8.71 [U245](X1,X2) = X1 + 2.X2 8.71/8.71 [U246](X) = X 8.71/8.71 [U251](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.71 [U252](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.71 [U253](X1,X2,X3) = X1 + X3 + 2 8.71/8.71 [U254](X1,X2,X3) = 2 8.71/8.71 [U255](X1,X2) = 2 8.71/8.71 [U256](X) = 2 8.71/8.71 [U261](X1,X2) = 2.X1 + X2 8.71/8.71 [U262](X) = 2.X 8.71/8.71 [U271](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U272](X) = X + 2 8.71/8.71 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U42](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U43](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U44](X1,X2,X3) = X1 + 2.X2 + 2.X3 8.71/8.71 [U45](X1,X2) = X1 + 2.X2 + 1 8.71/8.71 [U46](X) = X + 1 8.71/8.71 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U52](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U53](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U54](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 8.71/8.71 [U55](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U56](X) = X + 1 8.71/8.71 [U61](X1,X2) = 2.X1 + 2 8.71/8.71 [U62](X1,X2) = 2 8.71/8.71 [U63](X) = 2 8.71/8.71 [U71](X1,X2) = 2.X1 + 2.X2 8.71/8.71 [U72](X1,X2) = 2.X1 + 2.X2 8.71/8.71 [U73](X) = X + 2 8.71/8.71 [U81](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U82](X1,X2) = X1 + 2 8.71/8.71 [U83](X) = 2 8.71/8.71 [U91](X1,X2) = 2.X1 + 2 8.71/8.71 [U92](X1,X2) = 2 8.71/8.71 [U93](X) = 2 8.71/8.71 [afterNth](X1,X2) = 2.X1 + X2 + 2 8.71/8.71 [fst](X) = 2.X + 2 8.71/8.71 [head](X) = 2 8.71/8.71 [isLNat](X) = 2.X + 2 8.71/8.71 [isLNatKind](X) = 2 8.71/8.71 [isNatural](X) = 2.X 8.71/8.71 [isNaturalKind](X) = 2 8.71/8.71 [isPLNat](X) = 2.X + 2 8.71/8.71 [isPLNatKind](X) = 2.X 8.71/8.71 [natsFrom](X) = 2.X + 2 8.71/8.71 [sel](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [snd](X) = 2.X + 2 8.71/8.71 [splitAt](X1,X2) = X2 + 2 8.71/8.71 [tail](X) = X + 2 8.71/8.71 [take](X1,X2) = 2 8.71/8.71 [0] = 1 8.71/8.71 [cons](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [nil] = 2 8.71/8.71 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [s](X) = 2.X + 2 8.71/8.71 [tt] = 2 8.71/8.71 [U251#](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.71 [U252#](X1,X2,X3) = 2.X1 + 2.X3 + 1 8.71/8.71 [U253#](X1,X2,X3) = 2.X1 + 2.X3 + 1 8.71/8.71 [U254#](X1,X2,X3) = 2.X1 + 2.X3 + 1 8.71/8.71 [U255#](X1,X2) = 2.X2 + 2 8.71/8.71 [U41#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U42#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.71 [U44#](X1,X2,X3) = X1 + 2.X2 + 2.X3 8.71/8.71 [U45#](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U52#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U53#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U54#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.71 [U55#](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U61#](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U62#](X1,X2) = 2.X2 + 2 8.71/8.71 [U81#](X1,X2) = X1 + 2.X2 + 2 8.71/8.71 [U82#](X1,X2) = 2.X2 + 2 8.71/8.71 [U91#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.71 [U92#](X1,X2) = 2.X1 + 2.X2 + 1 8.71/8.71 [ISLNAT](X) = 2.X + 2 8.71/8.71 [ISPLNAT](X) = 2.X + 2 8.71/8.71 8.71/8.71 Problem 1.2: 8.71/8.71 8.71/8.71 SCC Processor: 8.71/8.71 -> Pairs: 8.71/8.71 U252#(tt,V1,V2) -> U253#(isLNatKind(V2),V1,V2) 8.71/8.71 U253#(tt,V1,V2) -> U254#(isLNatKind(V2),V1,V2) 8.71/8.71 U254#(tt,V1,V2) -> U255#(isNatural(V1),V2) 8.71/8.71 U255#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U61#(tt,V1) -> U62#(isPLNatKind(V1),V1) 8.71/8.71 U62#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U81#(tt,V1) -> U82#(isPLNatKind(V1),V1) 8.71/8.71 U82#(tt,V1) -> ISPLNAT(V1) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(fst(V1)) -> U61#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(snd(V1)) -> U81#(isPLNatKind(V1),V1) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISPLNAT(splitAt(V1,V2)) -> U251#(isNaturalKind(V1),V1,V2) 8.71/8.71 -> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 -> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 ->Strongly Connected Components: 8.71/8.71 ->->Cycle: 8.71/8.71 ->->-> Pairs: 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 ->->-> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 ->->-> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 8.71/8.71 Problem 1.2: 8.71/8.71 8.71/8.71 Reduction Pairs Processor: 8.71/8.71 -> Pairs: 8.71/8.71 U41#(tt,V1,V2) -> U42#(isNaturalKind(V1),V1,V2) 8.71/8.71 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.71 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.71 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.71 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.71 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.71 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.71 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.71 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.71 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.71 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.71 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.71 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.71 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.71 -> Rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.71 U131(tt) -> tt 8.71/8.71 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.71 U211(tt) -> tt 8.71/8.71 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.71 U221(tt) -> tt 8.71/8.71 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U24(tt,X) -> X 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.71 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.71 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.71 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.71 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.71 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.71 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.71 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.71 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.71 U304(tt,Y) -> Y 8.71/8.71 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.71 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.71 U312(tt,XS) -> pair(nil,XS) 8.71/8.71 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.71 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.71 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.71 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.71 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.71 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.71 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.71 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.71 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.71 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.71 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.71 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.71 U334(tt,XS) -> XS 8.71/8.71 U34(tt,N) -> N 8.71/8.71 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.71 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.71 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.71 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.71 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.71 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.71 isNatural(0) -> tt 8.71/8.71 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.71 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.71 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.71 isNaturalKind(0) -> tt 8.71/8.71 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.71 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.71 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.71 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.71 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.71 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.71 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.71 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.71 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.71 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.71 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.71 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.71 -> Unhiding rules: 8.71/8.71 Empty 8.71/8.71 -> Usable rules: 8.71/8.71 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.71 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.71 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.71 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.71 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.71 U106(tt) -> tt 8.71/8.71 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.71 U112(tt) -> tt 8.71/8.71 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.71 U122(tt) -> tt 8.71/8.71 U131(tt) -> tt 8.71/8.71 U141(tt) -> tt 8.71/8.71 U151(tt) -> tt 8.71/8.71 U161(tt) -> tt 8.71/8.71 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.71 U172(tt) -> tt 8.71/8.71 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.71 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.71 U183(tt) -> tt 8.71/8.71 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.71 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.71 U193(tt) -> tt 8.71/8.71 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.71 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.71 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.71 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.71 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.71 U206(tt) -> tt 8.71/8.71 U211(tt) -> tt 8.71/8.71 U221(tt) -> tt 8.71/8.71 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.71 U232(tt) -> tt 8.71/8.71 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.71 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.71 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.71 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.71 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.71 U246(tt) -> tt 8.71/8.71 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.71 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.71 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.71 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.71 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.71 U256(tt) -> tt 8.71/8.71 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.71 U262(tt) -> tt 8.71/8.71 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.71 U272(tt) -> tt 8.71/8.71 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.71 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.71 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.71 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.71 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.71 U46(tt) -> tt 8.71/8.71 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.71 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.71 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.71 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.71 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.71 U56(tt) -> tt 8.71/8.71 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.71 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.71 U63(tt) -> tt 8.71/8.71 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.71 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.71 U73(tt) -> tt 8.71/8.71 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.71 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.71 U83(tt) -> tt 8.71/8.71 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.71 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.71 U93(tt) -> tt 8.71/8.71 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.71 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.71 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.71 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.71 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.71 isLNat(nil) -> tt 8.71/8.71 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.71 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.71 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.71 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.71 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.71 isLNatKind(nil) -> tt 8.71/8.71 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.71 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 ->Interpretation type: 8.71/8.72 Linear 8.71/8.72 ->Coefficients: 8.71/8.72 Natural Numbers 8.71/8.72 ->Dimension: 8.71/8.72 1 8.71/8.72 ->Bound: 8.71/8.72 2 8.71/8.72 ->Interpretation: 8.71/8.72 8.71/8.72 [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U102](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U103](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.72 [U104](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.72 [U105](X1,X2) = X1 + 2.X2 + 1 8.71/8.72 [U106](X) = X + 1 8.71/8.72 [U111](X1,X2) = 2.X2 + 2 8.71/8.72 [U112](X) = 2.X + 2 8.71/8.72 [U121](X1,X2) = 2.X2 + 2 8.71/8.72 [U122](X) = 2.X + 1 8.71/8.72 [U131](X) = 2 8.71/8.72 [U141](X) = 2 8.71/8.72 [U151](X) = X 8.71/8.72 [U161](X) = X + 1 8.71/8.72 [U171](X1,X2) = X1 + 2.X2 8.71/8.72 [U172](X) = 2.X + 1 8.71/8.72 [U181](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U182](X1,X2) = 2.X2 + 2 8.71/8.72 [U183](X) = X 8.71/8.72 [U191](X1,X2) = 2.X1 + 2.X2 8.71/8.72 [U192](X1,X2) = X1 + 2.X2 + 1 8.71/8.72 [U193](X) = X + 2 8.71/8.72 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.72 [U202](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.72 [U203](X1,X2,X3) = X1 + 2.X2 + X3 + 2 8.71/8.72 [U204](X1,X2,X3) = 2.X2 + X3 + 2 8.71/8.72 [U205](X1,X2) = X1 + 2 8.71/8.72 [U206](X) = 2 8.71/8.72 [U211](X) = 2 8.71/8.72 [U221](X) = X 8.71/8.72 [U231](X1,X2) = 2 8.71/8.72 [U232](X) = 2 8.71/8.72 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U242](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U243](X1,X2,X3) = X1 + X3 + 2 8.71/8.72 [U244](X1,X2,X3) = X1 + 2 8.71/8.72 [U245](X1,X2) = 2 8.71/8.72 [U246](X) = 2 8.71/8.72 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U252](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U253](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.72 [U254](X1,X2,X3) = 2.X1 + 2.X2 + 2 8.71/8.72 [U255](X1,X2) = X1 + 2 8.71/8.72 [U256](X) = 2 8.71/8.72 [U261](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U262](X) = X + 1 8.71/8.72 [U271](X1,X2) = 2.X2 + 2 8.71/8.72 [U272](X) = 2 8.71/8.72 [U41](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U42](X1,X2,X3) = X1 + X2 + 2.X3 + 2 8.71/8.72 [U43](X1,X2,X3) = X1 + X2 + X3 + 2 8.71/8.72 [U44](X1,X2,X3) = X1 + X2 + 2 8.71/8.72 [U45](X1,X2) = 2 8.71/8.72 [U46](X) = 2 8.71/8.72 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U52](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 8.71/8.72 [U53](X1,X2,X3) = 2.X1 + 2.X2 + 2 8.71/8.72 [U54](X1,X2,X3) = 2.X2 + 2 8.71/8.72 [U55](X1,X2) = X1 + 2 8.71/8.72 [U56](X) = 2 8.71/8.72 [U61](X1,X2) = X1 + 2.X2 + 1 8.71/8.72 [U62](X1,X2) = 2.X2 + 2 8.71/8.72 [U63](X) = X 8.71/8.72 [U71](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U72](X1,X2) = X1 + 2.X2 8.71/8.72 [U73](X) = X + 2 8.71/8.72 [U81](X1,X2) = X1 + 2.X2 8.71/8.72 [U82](X1,X2) = 2.X2 + 2 8.71/8.72 [U83](X) = X 8.71/8.72 [U91](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U92](X1,X2) = X1 + X2 + 2 8.71/8.72 [U93](X) = 2 8.71/8.72 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [fst](X) = 2.X + 2 8.71/8.72 [head](X) = 2.X + 2 8.71/8.72 [isLNat](X) = 2.X + 2 8.71/8.72 [isLNatKind](X) = X 8.71/8.72 [isNatural](X) = 2.X 8.71/8.72 [isNaturalKind](X) = 2 8.71/8.72 [isPLNat](X) = 2.X + 2 8.71/8.72 [isPLNatKind](X) = 2.X + 2 8.71/8.72 [natsFrom](X) = 2.X + 2 8.71/8.72 [sel](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [snd](X) = 2.X + 2 8.71/8.72 [splitAt](X1,X2) = X1 + 2.X2 + 2 8.71/8.72 [tail](X) = 2.X + 2 8.71/8.72 [take](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [0] = 2 8.71/8.72 [cons](X1,X2) = X1 + 2.X2 + 2 8.71/8.72 [nil] = 2 8.71/8.72 [pair](X1,X2) = 2.X1 + X2 + 2 8.71/8.72 [s](X) = 2.X + 2 8.71/8.72 [tt] = 2 8.71/8.72 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U42#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 8.71/8.72 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.72 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 8.71/8.72 [U45#](X1,X2) = X1 + 2.X2 + 2 8.71/8.72 [U51#](X1,X2,X3) = 2.X2 + 2.X3 + 1 8.71/8.72 [U52#](X1,X2,X3) = 2.X2 + 2.X3 + 1 8.71/8.72 [U53#](X1,X2,X3) = 2.X2 + 2.X3 + 1 8.71/8.72 [U54#](X1,X2,X3) = 2.X2 + 2.X3 + 1 8.71/8.72 [U55#](X1,X2) = X1 + 2.X2 + 1 8.71/8.72 [U91#](X1,X2) = X1 + 2.X2 + 2 8.71/8.72 [U92#](X1,X2) = 2.X2 + 2 8.71/8.72 [ISLNAT](X) = 2.X + 2 8.71/8.72 8.71/8.72 Problem 1.2: 8.71/8.72 8.71/8.72 SCC Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U42#(tt,V1,V2) -> U43#(isLNatKind(V2),V1,V2) 8.71/8.72 U43#(tt,V1,V2) -> U44#(isLNatKind(V2),V1,V2) 8.71/8.72 U44#(tt,V1,V2) -> U45#(isNatural(V1),V2) 8.71/8.72 U45#(tt,V2) -> ISLNAT(V2) 8.71/8.72 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.72 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.72 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.72 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.72 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.72 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.72 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.72 ISLNAT(afterNth(V1,V2)) -> U41#(isNaturalKind(V1),V1,V2) 8.71/8.72 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.72 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 ->Strongly Connected Components: 8.71/8.72 ->->Cycle: 8.71/8.72 ->->-> Pairs: 8.71/8.72 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.72 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.72 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.72 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.72 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.72 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.72 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.72 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.72 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.72 ->->-> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 ->->-> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 8.71/8.72 Problem 1.2: 8.71/8.72 8.71/8.72 Reduction Pairs Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U51#(tt,V1,V2) -> U52#(isNaturalKind(V1),V1,V2) 8.71/8.72 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.72 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.72 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.72 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.72 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.72 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.72 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.72 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 -> Usable rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U131(tt) -> tt 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U211(tt) -> tt 8.71/8.72 U221(tt) -> tt 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 ->Interpretation type: 8.71/8.72 Linear 8.71/8.72 ->Coefficients: 8.71/8.72 Natural Numbers 8.71/8.72 ->Dimension: 8.71/8.72 1 8.71/8.72 ->Bound: 8.71/8.72 2 8.71/8.72 ->Interpretation: 8.71/8.72 8.71/8.72 [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2 8.71/8.72 [U102](X1,X2,X3) = 2.X1 + 2 8.71/8.72 [U103](X1,X2,X3) = 2.X1 + 2 8.71/8.72 [U104](X1,X2,X3) = 2.X1 + 2 8.71/8.72 [U105](X1,X2) = 2 8.71/8.72 [U106](X) = 2 8.71/8.72 [U111](X1,X2) = 2 8.71/8.72 [U112](X) = X 8.71/8.72 [U121](X1,X2) = 2 8.71/8.72 [U122](X) = X 8.71/8.72 [U131](X) = 2 8.71/8.72 [U141](X) = 2 8.71/8.72 [U151](X) = 2 8.71/8.72 [U161](X) = 2 8.71/8.72 [U171](X1,X2) = 2 8.71/8.72 [U172](X) = X 8.71/8.72 [U181](X1,X2) = 2.X1 + 2 8.71/8.72 [U182](X1,X2) = 2.X1 + 2 8.71/8.72 [U183](X) = 2 8.71/8.72 [U191](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U192](X1,X2) = 2.X1 + 2 8.71/8.72 [U193](X) = 2 8.71/8.72 [U201](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U202](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U203](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U204](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U205](X1,X2) = 2.X2 + 2 8.71/8.72 [U206](X) = 2 8.71/8.72 [U211](X) = 2 8.71/8.72 [U221](X) = X + 2 8.71/8.72 [U231](X1,X2) = X1 + 2.X2 + 2 8.71/8.72 [U232](X) = 2.X 8.71/8.72 [U241](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U242](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U243](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 8.71/8.72 [U244](X1,X2,X3) = 2.X2 + X3 + 2 8.71/8.72 [U245](X1,X2) = X1 + X2 8.71/8.72 [U246](X) = 2 8.71/8.72 [U251](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U252](X1,X2,X3) = X1 + X2 + 2.X3 + 2 8.71/8.72 [U253](X1,X2,X3) = 2.X1 + X2 + 2.X3 8.71/8.72 [U254](X1,X2,X3) = X1 + X2 + 2.X3 + 2 8.71/8.72 [U255](X1,X2) = 2.X2 + 2 8.71/8.72 [U256](X) = X 8.71/8.72 [U261](X1,X2) = X1 + 2.X2 + 2 8.71/8.72 [U262](X) = X + 1 8.71/8.72 [U271](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U272](X) = X 8.71/8.72 [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U42](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U43](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U44](X1,X2,X3) = 2.X1 + X3 + 2 8.71/8.72 [U45](X1,X2) = X2 + 2 8.71/8.72 [U46](X) = 2 8.71/8.72 [U51](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U52](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U53](X1,X2,X3) = 2.X1 + 2.X3 + 2 8.71/8.72 [U54](X1,X2,X3) = 2.X3 + 2 8.71/8.72 [U55](X1,X2) = 2 8.71/8.72 [U56](X) = 2 8.71/8.72 [U61](X1,X2) = 2 8.71/8.72 [U62](X1,X2) = 2 8.71/8.72 [U63](X) = 2 8.71/8.72 [U71](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U72](X1,X2) = 2.X1 + 2 8.71/8.72 [U73](X) = 2 8.71/8.72 [U81](X1,X2) = 2 8.71/8.72 [U82](X1,X2) = 2 8.71/8.72 [U83](X) = 2 8.71/8.72 [U91](X1,X2) = 2.X1 + 2.X2 + 1 8.71/8.72 [U92](X1,X2) = 2.X1 + 2.X2 + 1 8.71/8.72 [U93](X) = X + 2 8.71/8.72 [afterNth](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [fst](X) = 2 8.71/8.72 [head](X) = 2.X + 2 8.71/8.72 [isLNat](X) = 2.X + 2 8.71/8.72 [isLNatKind](X) = 2 8.71/8.72 [isNatural](X) = 2.X + 2 8.71/8.72 [isNaturalKind](X) = X + 2 8.71/8.72 [isPLNat](X) = 2.X + 2 8.71/8.72 [isPLNatKind](X) = 2.X + 2 8.71/8.72 [natsFrom](X) = 2.X + 2 8.71/8.72 [sel](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [snd](X) = 2 8.71/8.72 [splitAt](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [tail](X) = 2.X + 2 8.71/8.72 [take](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [0] = 1 8.71/8.72 [cons](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [nil] = 1 8.71/8.72 [pair](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [s](X) = 2.X + 2 8.71/8.72 [tt] = 2 8.71/8.72 [U51#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 8.71/8.72 [U52#](X1,X2,X3) = 2.X1 + 2.X3 8.71/8.72 [U53#](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.72 [U54#](X1,X2,X3) = X1 + 2.X3 + 2 8.71/8.72 [U55#](X1,X2) = 2.X2 + 2 8.71/8.72 [U91#](X1,X2) = 2.X1 + 2.X2 + 2 8.71/8.72 [U92#](X1,X2) = X1 + 2.X2 + 2 8.71/8.72 [ISLNAT](X) = 2.X + 2 8.71/8.72 8.71/8.72 Problem 1.2: 8.71/8.72 8.71/8.72 SCC Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U52#(tt,V1,V2) -> U53#(isLNatKind(V2),V1,V2) 8.71/8.72 U53#(tt,V1,V2) -> U54#(isLNatKind(V2),V1,V2) 8.71/8.72 U54#(tt,V1,V2) -> U55#(isNatural(V1),V2) 8.71/8.72 U55#(tt,V2) -> ISLNAT(V2) 8.71/8.72 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.72 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.72 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.72 ISLNAT(cons(V1,V2)) -> U51#(isNaturalKind(V1),V1,V2) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 ->Strongly Connected Components: 8.71/8.72 ->->Cycle: 8.71/8.72 ->->-> Pairs: 8.71/8.72 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.72 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.72 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.72 ->->-> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 ->->-> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 8.71/8.72 Problem 1.2: 8.71/8.72 8.71/8.72 SubNColl Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.72 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.72 ISLNAT(tail(V1)) -> U91#(isLNatKind(V1),V1) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 ->Projection: 8.71/8.72 pi(U91#) = 2 8.71/8.72 pi(U92#) = 2 8.71/8.72 pi(ISLNAT) = 1 8.71/8.72 8.71/8.72 Problem 1.2: 8.71/8.72 8.71/8.72 SCC Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U91#(tt,V1) -> U92#(isLNatKind(V1),V1) 8.71/8.72 U92#(tt,V1) -> ISLNAT(V1) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 ->Strongly Connected Components: 8.71/8.72 There is no strongly connected component 8.71/8.72 8.71/8.72 The problem is finite. 8.71/8.72 8.71/8.72 Problem 1.3: 8.71/8.72 8.71/8.72 SubNColl Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U281#(tt,N) -> U282#(isNaturalKind(N),N) 8.71/8.72 U282#(tt,N) -> N 8.71/8.72 NATSFROM(N) -> U281#(isNatural(N),N) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 natsFrom(s(N)) -> NATSFROM(s(N)) 8.71/8.72 ->Projection: 8.71/8.72 pi(U281#) = 2 8.71/8.72 pi(U282#) = 2 8.71/8.72 pi(NATSFROM) = 1 8.71/8.72 8.71/8.72 Problem 1.3: 8.71/8.72 8.71/8.72 SCC Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U281#(tt,N) -> U282#(isNaturalKind(N),N) 8.71/8.72 U282#(tt,N) -> N 8.71/8.72 NATSFROM(N) -> U281#(isNatural(N),N) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 ->Strongly Connected Components: 8.71/8.72 There is no strongly connected component 8.71/8.72 8.71/8.72 The problem is finite. 8.71/8.72 8.71/8.72 Problem 1.4: 8.71/8.72 8.71/8.72 SubNColl Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) 8.71/8.72 U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) 8.71/8.72 U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) 8.71/8.72 U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) 8.71/8.72 U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) 8.71/8.72 U326#(tt,N,X,XS) -> SPLITAT(N,XS) 8.71/8.72 SPLITAT(s(N),cons(X,XS)) -> U321#(isNatural(N),N,X,XS) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.72 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.72 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.72 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.72 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.72 U256(tt) -> tt 8.71/8.72 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.72 U262(tt) -> tt 8.71/8.72 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.72 U272(tt) -> tt 8.71/8.72 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.72 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.72 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.72 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.72 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.72 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.72 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.72 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.72 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.72 U304(tt,Y) -> Y 8.71/8.72 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.72 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.72 U312(tt,XS) -> pair(nil,XS) 8.71/8.72 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.72 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.72 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.72 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.72 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.72 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.72 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.72 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.72 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.72 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.72 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.72 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.72 U334(tt,XS) -> XS 8.71/8.72 U34(tt,N) -> N 8.71/8.72 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.72 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.72 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.72 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.72 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.72 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.72 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.72 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.72 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.72 U46(tt) -> tt 8.71/8.72 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.72 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.72 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.72 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.72 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.72 U56(tt) -> tt 8.71/8.72 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.72 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.72 U63(tt) -> tt 8.71/8.72 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.72 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.72 U73(tt) -> tt 8.71/8.72 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.72 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.72 U83(tt) -> tt 8.71/8.72 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.72 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.72 U93(tt) -> tt 8.71/8.72 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.72 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.72 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.72 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.72 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.72 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.72 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.72 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.72 isLNat(nil) -> tt 8.71/8.72 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.72 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.72 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.72 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.72 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.72 isLNatKind(nil) -> tt 8.71/8.72 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.72 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.72 isNatural(0) -> tt 8.71/8.72 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.72 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.72 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.72 isNaturalKind(0) -> tt 8.71/8.72 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.72 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.72 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.72 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.72 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.72 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.72 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.72 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.72 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.72 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.72 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.72 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.72 -> Unhiding rules: 8.71/8.72 Empty 8.71/8.72 ->Projection: 8.71/8.72 pi(U321#) = 2 8.71/8.72 pi(U322#) = 2 8.71/8.72 pi(U323#) = 2 8.71/8.72 pi(U324#) = 2 8.71/8.72 pi(U325#) = 2 8.71/8.72 pi(U326#) = 2 8.71/8.72 pi(SPLITAT) = 1 8.71/8.72 8.71/8.72 Problem 1.4: 8.71/8.72 8.71/8.72 SCC Processor: 8.71/8.72 -> Pairs: 8.71/8.72 U321#(tt,N,X,XS) -> U322#(isNaturalKind(N),N,X,XS) 8.71/8.72 U322#(tt,N,X,XS) -> U323#(isNatural(X),N,X,XS) 8.71/8.72 U323#(tt,N,X,XS) -> U324#(isNaturalKind(X),N,X,XS) 8.71/8.72 U324#(tt,N,X,XS) -> U325#(isLNat(XS),N,X,XS) 8.71/8.72 U325#(tt,N,X,XS) -> U326#(isLNatKind(XS),N,X,XS) 8.71/8.72 U326#(tt,N,X,XS) -> SPLITAT(N,XS) 8.71/8.72 -> Rules: 8.71/8.72 U101(tt,V1,V2) -> U102(isNaturalKind(V1),V1,V2) 8.71/8.72 U102(tt,V1,V2) -> U103(isLNatKind(V2),V1,V2) 8.71/8.72 U103(tt,V1,V2) -> U104(isLNatKind(V2),V1,V2) 8.71/8.72 U104(tt,V1,V2) -> U105(isNatural(V1),V2) 8.71/8.72 U105(tt,V2) -> U106(isLNat(V2)) 8.71/8.72 U106(tt) -> tt 8.71/8.72 U11(tt,N,XS) -> U12(isNaturalKind(N),N,XS) 8.71/8.72 U111(tt,V2) -> U112(isLNatKind(V2)) 8.71/8.72 U112(tt) -> tt 8.71/8.72 U12(tt,N,XS) -> U13(isLNat(XS),N,XS) 8.71/8.72 U121(tt,V2) -> U122(isLNatKind(V2)) 8.71/8.72 U122(tt) -> tt 8.71/8.72 U13(tt,N,XS) -> U14(isLNatKind(XS),N,XS) 8.71/8.72 U131(tt) -> tt 8.71/8.72 U14(tt,N,XS) -> snd(splitAt(N,XS)) 8.71/8.72 U141(tt) -> tt 8.71/8.72 U151(tt) -> tt 8.71/8.72 U161(tt) -> tt 8.71/8.72 U171(tt,V2) -> U172(isLNatKind(V2)) 8.71/8.72 U172(tt) -> tt 8.71/8.72 U181(tt,V1) -> U182(isLNatKind(V1),V1) 8.71/8.72 U182(tt,V1) -> U183(isLNat(V1)) 8.71/8.72 U183(tt) -> tt 8.71/8.72 U191(tt,V1) -> U192(isNaturalKind(V1),V1) 8.71/8.72 U192(tt,V1) -> U193(isNatural(V1)) 8.71/8.72 U193(tt) -> tt 8.71/8.72 U201(tt,V1,V2) -> U202(isNaturalKind(V1),V1,V2) 8.71/8.72 U202(tt,V1,V2) -> U203(isLNatKind(V2),V1,V2) 8.71/8.72 U203(tt,V1,V2) -> U204(isLNatKind(V2),V1,V2) 8.71/8.72 U204(tt,V1,V2) -> U205(isNatural(V1),V2) 8.71/8.72 U205(tt,V2) -> U206(isLNat(V2)) 8.71/8.72 U206(tt) -> tt 8.71/8.72 U21(tt,X,Y) -> U22(isLNatKind(X),X,Y) 8.71/8.72 U211(tt) -> tt 8.71/8.72 U22(tt,X,Y) -> U23(isLNat(Y),X,Y) 8.71/8.72 U221(tt) -> tt 8.71/8.72 U23(tt,X,Y) -> U24(isLNatKind(Y),X) 8.71/8.72 U231(tt,V2) -> U232(isLNatKind(V2)) 8.71/8.72 U232(tt) -> tt 8.71/8.72 U24(tt,X) -> X 8.71/8.72 U241(tt,V1,V2) -> U242(isLNatKind(V1),V1,V2) 8.71/8.72 U242(tt,V1,V2) -> U243(isLNatKind(V2),V1,V2) 8.71/8.72 U243(tt,V1,V2) -> U244(isLNatKind(V2),V1,V2) 8.71/8.72 U244(tt,V1,V2) -> U245(isLNat(V1),V2) 8.71/8.72 U245(tt,V2) -> U246(isLNat(V2)) 8.71/8.72 U246(tt) -> tt 8.71/8.72 U251(tt,V1,V2) -> U252(isNaturalKind(V1),V1,V2) 8.71/8.73 U252(tt,V1,V2) -> U253(isLNatKind(V2),V1,V2) 8.71/8.73 U253(tt,V1,V2) -> U254(isLNatKind(V2),V1,V2) 8.71/8.73 U254(tt,V1,V2) -> U255(isNatural(V1),V2) 8.71/8.73 U255(tt,V2) -> U256(isLNat(V2)) 8.71/8.73 U256(tt) -> tt 8.71/8.73 U261(tt,V2) -> U262(isLNatKind(V2)) 8.71/8.73 U262(tt) -> tt 8.71/8.73 U271(tt,V2) -> U272(isLNatKind(V2)) 8.71/8.73 U272(tt) -> tt 8.71/8.73 U281(tt,N) -> U282(isNaturalKind(N),N) 8.71/8.73 U282(tt,N) -> cons(N,natsFrom(s(N))) 8.71/8.73 U291(tt,N,XS) -> U292(isNaturalKind(N),N,XS) 8.71/8.73 U292(tt,N,XS) -> U293(isLNat(XS),N,XS) 8.71/8.73 U293(tt,N,XS) -> U294(isLNatKind(XS),N,XS) 8.71/8.73 U294(tt,N,XS) -> head(afterNth(N,XS)) 8.71/8.73 U301(tt,X,Y) -> U302(isLNatKind(X),Y) 8.71/8.73 U302(tt,Y) -> U303(isLNat(Y),Y) 8.71/8.73 U303(tt,Y) -> U304(isLNatKind(Y),Y) 8.71/8.73 U304(tt,Y) -> Y 8.71/8.73 U31(tt,N,XS) -> U32(isNaturalKind(N),N,XS) 8.71/8.73 U311(tt,XS) -> U312(isLNatKind(XS),XS) 8.71/8.73 U312(tt,XS) -> pair(nil,XS) 8.71/8.73 U32(tt,N,XS) -> U33(isLNat(XS),N,XS) 8.71/8.73 U321(tt,N,X,XS) -> U322(isNaturalKind(N),N,X,XS) 8.71/8.73 U322(tt,N,X,XS) -> U323(isNatural(X),N,X,XS) 8.71/8.73 U323(tt,N,X,XS) -> U324(isNaturalKind(X),N,X,XS) 8.71/8.73 U324(tt,N,X,XS) -> U325(isLNat(XS),N,X,XS) 8.71/8.73 U325(tt,N,X,XS) -> U326(isLNatKind(XS),N,X,XS) 8.71/8.73 U326(tt,N,X,XS) -> U327(splitAt(N,XS),X) 8.71/8.73 U327(pair(YS,ZS),X) -> pair(cons(X,YS),ZS) 8.71/8.73 U33(tt,N,XS) -> U34(isLNatKind(XS),N) 8.71/8.73 U331(tt,N,XS) -> U332(isNaturalKind(N),XS) 8.71/8.73 U332(tt,XS) -> U333(isLNat(XS),XS) 8.71/8.73 U333(tt,XS) -> U334(isLNatKind(XS),XS) 8.71/8.73 U334(tt,XS) -> XS 8.71/8.73 U34(tt,N) -> N 8.71/8.73 U341(tt,N,XS) -> U342(isNaturalKind(N),N,XS) 8.71/8.73 U342(tt,N,XS) -> U343(isLNat(XS),N,XS) 8.71/8.73 U343(tt,N,XS) -> U344(isLNatKind(XS),N,XS) 8.71/8.73 U344(tt,N,XS) -> fst(splitAt(N,XS)) 8.71/8.73 U41(tt,V1,V2) -> U42(isNaturalKind(V1),V1,V2) 8.71/8.73 U42(tt,V1,V2) -> U43(isLNatKind(V2),V1,V2) 8.71/8.73 U43(tt,V1,V2) -> U44(isLNatKind(V2),V1,V2) 8.71/8.73 U44(tt,V1,V2) -> U45(isNatural(V1),V2) 8.71/8.73 U45(tt,V2) -> U46(isLNat(V2)) 8.71/8.73 U46(tt) -> tt 8.71/8.73 U51(tt,V1,V2) -> U52(isNaturalKind(V1),V1,V2) 8.71/8.73 U52(tt,V1,V2) -> U53(isLNatKind(V2),V1,V2) 8.71/8.73 U53(tt,V1,V2) -> U54(isLNatKind(V2),V1,V2) 8.71/8.73 U54(tt,V1,V2) -> U55(isNatural(V1),V2) 8.71/8.73 U55(tt,V2) -> U56(isLNat(V2)) 8.71/8.73 U56(tt) -> tt 8.71/8.73 U61(tt,V1) -> U62(isPLNatKind(V1),V1) 8.71/8.73 U62(tt,V1) -> U63(isPLNat(V1)) 8.71/8.73 U63(tt) -> tt 8.71/8.73 U71(tt,V1) -> U72(isNaturalKind(V1),V1) 8.71/8.73 U72(tt,V1) -> U73(isNatural(V1)) 8.71/8.73 U73(tt) -> tt 8.71/8.73 U81(tt,V1) -> U82(isPLNatKind(V1),V1) 8.71/8.73 U82(tt,V1) -> U83(isPLNat(V1)) 8.71/8.73 U83(tt) -> tt 8.71/8.73 U91(tt,V1) -> U92(isLNatKind(V1),V1) 8.71/8.73 U92(tt,V1) -> U93(isLNat(V1)) 8.71/8.73 U93(tt) -> tt 8.71/8.73 afterNth(N,XS) -> U11(isNatural(N),N,XS) 8.71/8.73 fst(pair(X,Y)) -> U21(isLNat(X),X,Y) 8.71/8.73 head(cons(N,XS)) -> U31(isNatural(N),N,XS) 8.71/8.73 isLNat(afterNth(V1,V2)) -> U41(isNaturalKind(V1),V1,V2) 8.71/8.73 isLNat(fst(V1)) -> U61(isPLNatKind(V1),V1) 8.71/8.73 isLNat(natsFrom(V1)) -> U71(isNaturalKind(V1),V1) 8.71/8.73 isLNat(snd(V1)) -> U81(isPLNatKind(V1),V1) 8.71/8.73 isLNat(tail(V1)) -> U91(isLNatKind(V1),V1) 8.71/8.73 isLNat(take(V1,V2)) -> U101(isNaturalKind(V1),V1,V2) 8.71/8.73 isLNat(cons(V1,V2)) -> U51(isNaturalKind(V1),V1,V2) 8.71/8.73 isLNat(nil) -> tt 8.71/8.73 isLNatKind(afterNth(V1,V2)) -> U111(isNaturalKind(V1),V2) 8.71/8.73 isLNatKind(fst(V1)) -> U131(isPLNatKind(V1)) 8.71/8.73 isLNatKind(natsFrom(V1)) -> U141(isNaturalKind(V1)) 8.71/8.73 isLNatKind(snd(V1)) -> U151(isPLNatKind(V1)) 8.71/8.73 isLNatKind(tail(V1)) -> U161(isLNatKind(V1)) 8.71/8.73 isLNatKind(take(V1,V2)) -> U171(isNaturalKind(V1),V2) 8.71/8.73 isLNatKind(cons(V1,V2)) -> U121(isNaturalKind(V1),V2) 8.71/8.73 isLNatKind(nil) -> tt 8.71/8.73 isNatural(head(V1)) -> U181(isLNatKind(V1),V1) 8.71/8.73 isNatural(sel(V1,V2)) -> U201(isNaturalKind(V1),V1,V2) 8.71/8.73 isNatural(0) -> tt 8.71/8.73 isNatural(s(V1)) -> U191(isNaturalKind(V1),V1) 8.71/8.73 isNaturalKind(head(V1)) -> U211(isLNatKind(V1)) 8.71/8.73 isNaturalKind(sel(V1,V2)) -> U231(isNaturalKind(V1),V2) 8.71/8.73 isNaturalKind(0) -> tt 8.71/8.73 isNaturalKind(s(V1)) -> U221(isNaturalKind(V1)) 8.71/8.73 isPLNat(splitAt(V1,V2)) -> U251(isNaturalKind(V1),V1,V2) 8.71/8.73 isPLNat(pair(V1,V2)) -> U241(isLNatKind(V1),V1,V2) 8.71/8.73 isPLNatKind(splitAt(V1,V2)) -> U271(isNaturalKind(V1),V2) 8.71/8.73 isPLNatKind(pair(V1,V2)) -> U261(isLNatKind(V1),V2) 8.71/8.73 natsFrom(N) -> U281(isNatural(N),N) 8.71/8.73 sel(N,XS) -> U291(isNatural(N),N,XS) 8.71/8.73 snd(pair(X,Y)) -> U301(isLNat(X),X,Y) 8.71/8.73 splitAt(0,XS) -> U311(isLNat(XS),XS) 8.71/8.73 splitAt(s(N),cons(X,XS)) -> U321(isNatural(N),N,X,XS) 8.71/8.73 tail(cons(N,XS)) -> U331(isNatural(N),N,XS) 8.71/8.73 take(N,XS) -> U341(isNatural(N),N,XS) 8.71/8.73 -> Unhiding rules: 8.71/8.73 Empty 8.71/8.73 ->Strongly Connected Components: 8.71/8.73 There is no strongly connected component 8.71/8.73 8.71/8.73 The problem is finite. 8.71/8.73 EOF