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