/export/starexec/sandbox2/solver/bin/starexec_run_default /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES Problem 1: (VAR IL L M N V V1 V2) (STRATEGY CONTEXTSENSITIVE (U101 1) (U102 1) (U103 1) (U104 1) (U105 1) (U106 1) (U11 1) (U111 1) (U112 1) (U113 1) (U114 1) (U12 1) (U121 1) (U122 1) (U13 1) (U131 1) (U132 1) (U133 1) (U134 1) (U135 1) (U136 1) (U21 1) (U22 1) (U23 1) (U31 1) (U32 1) (U33 1) (U41 1) (U42 1) (U43 1) (U44 1) (U45 1) (U46 1) (U51 1) (U52 1) (U61 1) (U62 1) (U71 1) (U81 1) (U91 1) (U92 1) (U93 1) (U94 1) (U95 1) (U96 1) (isNat) (isNatIList) (isNatIListKind) (isNatKind) (isNatList) (length 1) (take 1 2) (zeros) (0) (cons 1) (nil) (s 1) (tt) ) (RULES U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ) Problem 1: Dependency Pairs Processor: -> Pairs: U101#(tt,V1,V2) -> U102#(isNatKind(V1),V1,V2) U101#(tt,V1,V2) -> ISNATKIND(V1) U102#(tt,V1,V2) -> U103#(isNatIListKind(V2),V1,V2) U102#(tt,V1,V2) -> ISNATILISTKIND(V2) U103#(tt,V1,V2) -> U104#(isNatIListKind(V2),V1,V2) U103#(tt,V1,V2) -> ISNATILISTKIND(V2) U104#(tt,V1,V2) -> U105#(isNat(V1),V2) U104#(tt,V1,V2) -> ISNAT(V1) U105#(tt,V2) -> U106#(isNatIList(V2)) U105#(tt,V2) -> ISNATILIST(V2) U11#(tt,V1) -> U12#(isNatIListKind(V1),V1) U11#(tt,V1) -> ISNATILISTKIND(V1) U111#(tt,L,N) -> U112#(isNatIListKind(L),L,N) U111#(tt,L,N) -> ISNATILISTKIND(L) U112#(tt,L,N) -> U113#(isNat(N),L,N) U112#(tt,L,N) -> ISNAT(N) U113#(tt,L,N) -> U114#(isNatKind(N),L) U113#(tt,L,N) -> ISNATKIND(N) U114#(tt,L) -> LENGTH(L) U114#(tt,L) -> L U12#(tt,V1) -> U13#(isNatList(V1)) U12#(tt,V1) -> ISNATLIST(V1) U121#(tt,IL) -> U122#(isNatIListKind(IL)) U121#(tt,IL) -> ISNATILISTKIND(IL) U131#(tt,IL,M,N) -> U132#(isNatIListKind(IL),IL,M,N) U131#(tt,IL,M,N) -> ISNATILISTKIND(IL) U132#(tt,IL,M,N) -> U133#(isNat(M),IL,M,N) U132#(tt,IL,M,N) -> ISNAT(M) U133#(tt,IL,M,N) -> U134#(isNatKind(M),IL,M,N) U133#(tt,IL,M,N) -> ISNATKIND(M) U134#(tt,IL,M,N) -> U135#(isNat(N),IL,M,N) U134#(tt,IL,M,N) -> ISNAT(N) U135#(tt,IL,M,N) -> U136#(isNatKind(N),IL,M,N) U135#(tt,IL,M,N) -> ISNATKIND(N) U136#(tt,IL,M,N) -> N U21#(tt,V1) -> U22#(isNatKind(V1),V1) U21#(tt,V1) -> ISNATKIND(V1) U22#(tt,V1) -> U23#(isNat(V1)) U22#(tt,V1) -> ISNAT(V1) U31#(tt,V) -> U32#(isNatIListKind(V),V) U31#(tt,V) -> ISNATILISTKIND(V) U32#(tt,V) -> U33#(isNatList(V)) U32#(tt,V) -> ISNATLIST(V) U41#(tt,V1,V2) -> U42#(isNatKind(V1),V1,V2) U41#(tt,V1,V2) -> ISNATKIND(V1) U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U42#(tt,V1,V2) -> ISNATILISTKIND(V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> ISNATILISTKIND(V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U44#(tt,V1,V2) -> ISNAT(V1) U45#(tt,V2) -> U46#(isNatIList(V2)) U45#(tt,V2) -> ISNATILIST(V2) U51#(tt,V2) -> U52#(isNatIListKind(V2)) U51#(tt,V2) -> ISNATILISTKIND(V2) U61#(tt,V2) -> U62#(isNatIListKind(V2)) U61#(tt,V2) -> ISNATILISTKIND(V2) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U91#(tt,V1,V2) -> ISNATKIND(V1) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U92#(tt,V1,V2) -> ISNATILISTKIND(V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> ISNATILISTKIND(V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> U96#(isNatList(V2)) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(length(V1)) -> ISNATILISTKIND(V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNAT(s(V1)) -> ISNATKIND(V1) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) ISNATILIST(cons(V1,V2)) -> ISNATKIND(V1) ISNATILIST(V) -> U31#(isNatIListKind(V),V) ISNATILIST(V) -> ISNATILISTKIND(V) ISNATILISTKIND(take(V1,V2)) -> U61#(isNatKind(V1),V2) ISNATILISTKIND(take(V1,V2)) -> ISNATKIND(V1) ISNATILISTKIND(cons(V1,V2)) -> U51#(isNatKind(V1),V2) ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) ISNATKIND(length(V1)) -> U71#(isNatIListKind(V1)) ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) ISNATKIND(s(V1)) -> U81#(isNatKind(V1)) ISNATKIND(s(V1)) -> ISNATKIND(V1) ISNATLIST(take(V1,V2)) -> U101#(isNatKind(V1),V1,V2) ISNATLIST(take(V1,V2)) -> ISNATKIND(V1) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) ISNATLIST(cons(V1,V2)) -> ISNATKIND(V1) LENGTH(cons(N,L)) -> U111#(isNatList(L),L,N) LENGTH(cons(N,L)) -> ISNATLIST(L) TAKE(0,IL) -> U121#(isNatIList(IL),IL) TAKE(0,IL) -> ISNATILIST(IL) TAKE(s(M),cons(N,IL)) -> U131#(isNatIList(IL),IL,M,N) TAKE(s(M),cons(N,IL)) -> ISNATILIST(IL) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding Rules: take(M,IL) -> TAKE(M,IL) take(M,x7) -> x7 take(x7,IL) -> x7 zeros -> ZEROS Problem 1: SCC Processor: -> Pairs: U101#(tt,V1,V2) -> U102#(isNatKind(V1),V1,V2) U101#(tt,V1,V2) -> ISNATKIND(V1) U102#(tt,V1,V2) -> U103#(isNatIListKind(V2),V1,V2) U102#(tt,V1,V2) -> ISNATILISTKIND(V2) U103#(tt,V1,V2) -> U104#(isNatIListKind(V2),V1,V2) U103#(tt,V1,V2) -> ISNATILISTKIND(V2) U104#(tt,V1,V2) -> U105#(isNat(V1),V2) U104#(tt,V1,V2) -> ISNAT(V1) U105#(tt,V2) -> U106#(isNatIList(V2)) U105#(tt,V2) -> ISNATILIST(V2) U11#(tt,V1) -> U12#(isNatIListKind(V1),V1) U11#(tt,V1) -> ISNATILISTKIND(V1) U111#(tt,L,N) -> U112#(isNatIListKind(L),L,N) U111#(tt,L,N) -> ISNATILISTKIND(L) U112#(tt,L,N) -> U113#(isNat(N),L,N) U112#(tt,L,N) -> ISNAT(N) U113#(tt,L,N) -> U114#(isNatKind(N),L) U113#(tt,L,N) -> ISNATKIND(N) U114#(tt,L) -> LENGTH(L) U114#(tt,L) -> L U12#(tt,V1) -> U13#(isNatList(V1)) U12#(tt,V1) -> ISNATLIST(V1) U121#(tt,IL) -> U122#(isNatIListKind(IL)) U121#(tt,IL) -> ISNATILISTKIND(IL) U131#(tt,IL,M,N) -> U132#(isNatIListKind(IL),IL,M,N) U131#(tt,IL,M,N) -> ISNATILISTKIND(IL) U132#(tt,IL,M,N) -> U133#(isNat(M),IL,M,N) U132#(tt,IL,M,N) -> ISNAT(M) U133#(tt,IL,M,N) -> U134#(isNatKind(M),IL,M,N) U133#(tt,IL,M,N) -> ISNATKIND(M) U134#(tt,IL,M,N) -> U135#(isNat(N),IL,M,N) U134#(tt,IL,M,N) -> ISNAT(N) U135#(tt,IL,M,N) -> U136#(isNatKind(N),IL,M,N) U135#(tt,IL,M,N) -> ISNATKIND(N) U136#(tt,IL,M,N) -> N U21#(tt,V1) -> U22#(isNatKind(V1),V1) U21#(tt,V1) -> ISNATKIND(V1) U22#(tt,V1) -> U23#(isNat(V1)) U22#(tt,V1) -> ISNAT(V1) U31#(tt,V) -> U32#(isNatIListKind(V),V) U31#(tt,V) -> ISNATILISTKIND(V) U32#(tt,V) -> U33#(isNatList(V)) U32#(tt,V) -> ISNATLIST(V) U41#(tt,V1,V2) -> U42#(isNatKind(V1),V1,V2) U41#(tt,V1,V2) -> ISNATKIND(V1) U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U42#(tt,V1,V2) -> ISNATILISTKIND(V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> ISNATILISTKIND(V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U44#(tt,V1,V2) -> ISNAT(V1) U45#(tt,V2) -> U46#(isNatIList(V2)) U45#(tt,V2) -> ISNATILIST(V2) U51#(tt,V2) -> U52#(isNatIListKind(V2)) U51#(tt,V2) -> ISNATILISTKIND(V2) U61#(tt,V2) -> U62#(isNatIListKind(V2)) U61#(tt,V2) -> ISNATILISTKIND(V2) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U91#(tt,V1,V2) -> ISNATKIND(V1) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U92#(tt,V1,V2) -> ISNATILISTKIND(V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> ISNATILISTKIND(V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> U96#(isNatList(V2)) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(length(V1)) -> ISNATILISTKIND(V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNAT(s(V1)) -> ISNATKIND(V1) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) ISNATILIST(cons(V1,V2)) -> ISNATKIND(V1) ISNATILIST(V) -> U31#(isNatIListKind(V),V) ISNATILIST(V) -> ISNATILISTKIND(V) ISNATILISTKIND(take(V1,V2)) -> U61#(isNatKind(V1),V2) ISNATILISTKIND(take(V1,V2)) -> ISNATKIND(V1) ISNATILISTKIND(cons(V1,V2)) -> U51#(isNatKind(V1),V2) ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) ISNATKIND(length(V1)) -> U71#(isNatIListKind(V1)) ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) ISNATKIND(s(V1)) -> U81#(isNatKind(V1)) ISNATKIND(s(V1)) -> ISNATKIND(V1) ISNATLIST(take(V1,V2)) -> U101#(isNatKind(V1),V1,V2) ISNATLIST(take(V1,V2)) -> ISNATKIND(V1) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) ISNATLIST(cons(V1,V2)) -> ISNATKIND(V1) LENGTH(cons(N,L)) -> U111#(isNatList(L),L,N) LENGTH(cons(N,L)) -> ISNATLIST(L) TAKE(0,IL) -> U121#(isNatIList(IL),IL) TAKE(0,IL) -> ISNATILIST(IL) TAKE(s(M),cons(N,IL)) -> U131#(isNatIList(IL),IL,M,N) TAKE(s(M),cons(N,IL)) -> ISNATILIST(IL) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: take(M,IL) -> TAKE(M,IL) take(M,x7) -> x7 take(x7,IL) -> x7 zeros -> ZEROS ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U51#(tt,V2) -> ISNATILISTKIND(V2) U61#(tt,V2) -> ISNATILISTKIND(V2) ISNATILISTKIND(take(V1,V2)) -> U61#(isNatKind(V1),V2) ISNATILISTKIND(take(V1,V2)) -> ISNATKIND(V1) ISNATILISTKIND(cons(V1,V2)) -> U51#(isNatKind(V1),V2) ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) ISNATKIND(s(V1)) -> ISNATKIND(V1) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: U101#(tt,V1,V2) -> U102#(isNatKind(V1),V1,V2) U102#(tt,V1,V2) -> U103#(isNatIListKind(V2),V1,V2) U103#(tt,V1,V2) -> U104#(isNatIListKind(V2),V1,V2) U104#(tt,V1,V2) -> U105#(isNat(V1),V2) U104#(tt,V1,V2) -> ISNAT(V1) U105#(tt,V2) -> ISNATILIST(V2) U11#(tt,V1) -> U12#(isNatIListKind(V1),V1) U12#(tt,V1) -> ISNATLIST(V1) U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) U31#(tt,V) -> U32#(isNatIListKind(V),V) U32#(tt,V) -> ISNATLIST(V) U41#(tt,V1,V2) -> U42#(isNatKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U44#(tt,V1,V2) -> ISNAT(V1) U45#(tt,V2) -> ISNATILIST(V2) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) ISNATILIST(V) -> U31#(isNatIListKind(V),V) ISNATLIST(take(V1,V2)) -> U101#(isNatKind(V1),V1,V2) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: U131#(tt,IL,M,N) -> U132#(isNatIListKind(IL),IL,M,N) U132#(tt,IL,M,N) -> U133#(isNat(M),IL,M,N) U133#(tt,IL,M,N) -> U134#(isNatKind(M),IL,M,N) U134#(tt,IL,M,N) -> U135#(isNat(N),IL,M,N) U135#(tt,IL,M,N) -> U136#(isNatKind(N),IL,M,N) U136#(tt,IL,M,N) -> N TAKE(s(M),cons(N,IL)) -> U131#(isNatIList(IL),IL,M,N) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: take(M,IL) -> TAKE(M,IL) take(M,x7) -> x7 take(x7,IL) -> x7 ->->Cycle: ->->-> Pairs: U111#(tt,L,N) -> U112#(isNatIListKind(L),L,N) U112#(tt,L,N) -> U113#(isNat(N),L,N) U113#(tt,L,N) -> U114#(isNatKind(N),L) U114#(tt,L) -> LENGTH(L) LENGTH(cons(N,L)) -> U111#(isNatList(L),L,N) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty The problem is decomposed in 4 subproblems. Problem 1.1: Reduction Pairs Processor: -> Pairs: U51#(tt,V2) -> ISNATILISTKIND(V2) U61#(tt,V2) -> ISNATILISTKIND(V2) ISNATILISTKIND(take(V1,V2)) -> U61#(isNatKind(V1),V2) ISNATILISTKIND(take(V1,V2)) -> ISNATKIND(V1) ISNATILISTKIND(cons(V1,V2)) -> U51#(isNatKind(V1),V2) ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) ISNATKIND(s(V1)) -> ISNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty -> Usable rules: U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U51](X1,X2) = 2.X1 + 2 [U52](X) = 2 [U61](X1,X2) = 2.X1 + 2.X2 [U62](X) = X + 2 [U71](X) = 2 [U81](X) = X [isNatIListKind](X) = 2.X + 2 [isNatKind](X) = 2 [length](X) = X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [zeros] = 0 [0] = 1 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [s](X) = 2.X + 1 [tt] = 2 [U51#](X1,X2) = X1 + 2.X2 + 1 [U61#](X1,X2) = X1 + 2.X2 + 2 [ISNATILISTKIND](X) = 2.X + 2 [ISNATKIND](X) = 2.X + 2 Problem 1.1: SCC Processor: -> Pairs: U61#(tt,V2) -> ISNATILISTKIND(V2) ISNATILISTKIND(take(V1,V2)) -> U61#(isNatKind(V1),V2) ISNATILISTKIND(take(V1,V2)) -> ISNATKIND(V1) ISNATILISTKIND(cons(V1,V2)) -> U51#(isNatKind(V1),V2) ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) ISNATKIND(s(V1)) -> ISNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U61#(tt,V2) -> ISNATILISTKIND(V2) ISNATILISTKIND(take(V1,V2)) -> U61#(isNatKind(V1),V2) ISNATILISTKIND(take(V1,V2)) -> ISNATKIND(V1) ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) ISNATKIND(s(V1)) -> ISNATKIND(V1) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty Problem 1.1: SubNColl Processor: -> Pairs: U61#(tt,V2) -> ISNATILISTKIND(V2) ISNATILISTKIND(take(V1,V2)) -> U61#(isNatKind(V1),V2) ISNATILISTKIND(take(V1,V2)) -> ISNATKIND(V1) ISNATILISTKIND(cons(V1,V2)) -> ISNATKIND(V1) ISNATKIND(length(V1)) -> ISNATILISTKIND(V1) ISNATKIND(s(V1)) -> ISNATKIND(V1) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Projection: pi(U61#) = 2 pi(ISNATILISTKIND) = 1 pi(ISNATKIND) = 1 Problem 1.1: SCC Processor: -> Pairs: U61#(tt,V2) -> ISNATILISTKIND(V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2: Reduction Pairs Processor: -> Pairs: U101#(tt,V1,V2) -> U102#(isNatKind(V1),V1,V2) U102#(tt,V1,V2) -> U103#(isNatIListKind(V2),V1,V2) U103#(tt,V1,V2) -> U104#(isNatIListKind(V2),V1,V2) U104#(tt,V1,V2) -> U105#(isNat(V1),V2) U104#(tt,V1,V2) -> ISNAT(V1) U105#(tt,V2) -> ISNATILIST(V2) U11#(tt,V1) -> U12#(isNatIListKind(V1),V1) U12#(tt,V1) -> ISNATLIST(V1) U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) U31#(tt,V) -> U32#(isNatIListKind(V),V) U32#(tt,V) -> ISNATLIST(V) U41#(tt,V1,V2) -> U42#(isNatKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U44#(tt,V1,V2) -> ISNAT(V1) U45#(tt,V2) -> ISNATILIST(V2) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) ISNATILIST(V) -> U31#(isNatIListKind(V),V) ISNATLIST(take(V1,V2)) -> U101#(isNatKind(V1),V1,V2) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U12(tt,V1) -> U13(isNatList(V1)) U13(tt) -> tt U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U102](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U103](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U104](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U105](X1,X2) = 2.X1 + 2.X2 + 2 [U106](X) = X + 2 [U11](X1,X2) = 2.X2 + 2 [U12](X1,X2) = X1 + X2 [U13](X) = 2 [U21](X1,X2) = 2.X2 + 2 [U22](X1,X2) = X1 + 2.X2 [U23](X) = 2.X + 2 [U31](X1,X2) = 2.X2 [U32](X1,X2) = 2.X2 [U33](X) = X [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U42](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U43](X1,X2,X3) = 2.X1 + 2.X2 [U44](X1,X2,X3) = 2.X2 + 2 [U45](X1,X2) = 2.X1 + 2 [U46](X) = 2 [U51](X1,X2) = X1 + 2.X2 + 2 [U52](X) = 2 [U61](X1,X2) = 2.X1 + 2.X2 [U62](X) = 2.X [U71](X) = 2 [U81](X) = 2 [U91](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U92](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U93](X1,X2,X3) = 2.X1 + X2 [U94](X1,X2,X3) = X2 + 2 [U95](X1,X2) = X1 + 2 [U96](X) = 2 [isNat](X) = X [isNatIList](X) = 2.X [isNatIListKind](X) = X + 2 [isNatKind](X) = 2 [isNatList](X) = 2.X [length](X) = 2.X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [zeros] = 2 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [s](X) = 2.X + 2 [tt] = 2 [U101#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U102#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U103#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U104#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U105#](X1,X2) = 2.X1 + 2.X2 + 2 [U11#](X1,X2) = 2.X2 + 2 [U12#](X1,X2) = 2.X2 + 2 [U21#](X1,X2) = 2.X1 + 2.X2 [U22#](X1,X2) = X1 + 2.X2 + 2 [U31#](X1,X2) = 2.X2 + 2 [U32#](X1,X2) = 2.X2 + 2 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U42#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U43#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U44#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U45#](X1,X2) = 2.X1 + 2.X2 + 2 [U91#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U92#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U93#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U94#](X1,X2,X3) = 2.X2 + 2.X3 + 1 [U95#](X1,X2) = X1 + 2.X2 [ISNAT](X) = 2.X [ISNATILIST](X) = 2.X + 2 [ISNATLIST](X) = 2.X + 2 Problem 1.2: SCC Processor: -> Pairs: U102#(tt,V1,V2) -> U103#(isNatIListKind(V2),V1,V2) U103#(tt,V1,V2) -> U104#(isNatIListKind(V2),V1,V2) U104#(tt,V1,V2) -> U105#(isNat(V1),V2) U104#(tt,V1,V2) -> ISNAT(V1) U105#(tt,V2) -> ISNATILIST(V2) U11#(tt,V1) -> U12#(isNatIListKind(V1),V1) U12#(tt,V1) -> ISNATLIST(V1) U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) U31#(tt,V) -> U32#(isNatIListKind(V),V) U32#(tt,V) -> ISNATLIST(V) U41#(tt,V1,V2) -> U42#(isNatKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U44#(tt,V1,V2) -> ISNAT(V1) U45#(tt,V2) -> ISNATILIST(V2) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) ISNATILIST(V) -> U31#(isNatIListKind(V),V) ISNATLIST(take(V1,V2)) -> U101#(isNatKind(V1),V1,V2) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U11#(tt,V1) -> U12#(isNatIListKind(V1),V1) U12#(tt,V1) -> ISNATLIST(V1) U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: U41#(tt,V1,V2) -> U42#(isNatKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U45#(tt,V2) -> ISNATILIST(V2) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty The problem is decomposed in 2 subproblems. Problem 1.2.1: Reduction Pairs Processor: -> Pairs: U11#(tt,V1) -> U12#(isNatIListKind(V1),V1) U12#(tt,V1) -> ISNATLIST(V1) U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U12(tt,V1) -> U13(isNatList(V1)) U13(tt) -> tt U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U102](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U103](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U104](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U105](X1,X2) = 2.X1 + 2.X2 + 1 [U106](X) = X + 2 [U11](X1,X2) = X1 + 2.X2 + 1 [U12](X1,X2) = X1 + X2 + 1 [U13](X) = X + 1 [U21](X1,X2) = X2 + 2 [U22](X1,X2) = X2 + 2 [U23](X) = X + 1 [U31](X1,X2) = X1 + 2.X2 [U32](X1,X2) = X1 + 2.X2 [U33](X) = 2 [U41](X1,X2,X3) = 2.X1 + 2.X2 + X3 + 1 [U42](X1,X2,X3) = X1 + 2.X2 + X3 + 2 [U43](X1,X2,X3) = 2.X1 + 2.X2 + X3 [U44](X1,X2,X3) = X1 + 2.X2 + X3 + 1 [U45](X1,X2) = 2.X1 + X2 [U46](X) = 2 [U51](X1,X2) = 2 [U52](X) = 2 [U61](X1,X2) = 2 [U62](X) = X [U71](X) = X [U81](X) = 2 [U91](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U92](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U93](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U94](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U95](X1,X2) = 2.X1 + 2.X2 + 2 [U96](X) = 2.X + 2 [isNat](X) = X + 1 [isNatIList](X) = 2.X + 2 [isNatIListKind](X) = 2 [isNatKind](X) = 2 [isNatList](X) = X + 2 [length](X) = 2.X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [zeros] = 2 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 0 [s](X) = 2.X + 2 [tt] = 2 [U11#](X1,X2) = 2.X1 + 2.X2 + 2 [U12#](X1,X2) = X1 + 2.X2 + 2 [U21#](X1,X2) = X1 + 2.X2 + 2 [U22#](X1,X2) = X1 + 2.X2 + 2 [U91#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U92#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U93#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U94#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U95#](X1,X2) = 2.X1 + 2.X2 + 2 [ISNAT](X) = 2.X + 2 [ISNATLIST](X) = 2.X + 2 Problem 1.2.1: SCC Processor: -> Pairs: U12#(tt,V1) -> ISNATLIST(V1) U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U94#(tt,V1,V2) -> ISNAT(V1) U95#(tt,V2) -> ISNATLIST(V2) ISNAT(length(V1)) -> U11#(isNatIListKind(V1),V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: ->->Cycle: ->->-> Pairs: U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty ->->Cycle: ->->-> Pairs: U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U95#(tt,V2) -> ISNATLIST(V2) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) ->->-> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->->-> Unhiding rules: Empty The problem is decomposed in 2 subproblems. Problem 1.2.1.1: SubNColl Processor: -> Pairs: U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) ISNAT(s(V1)) -> U21#(isNatKind(V1),V1) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Projection: pi(U21#) = 2 pi(U22#) = 2 pi(ISNAT) = 1 Problem 1.2.1.1: SCC Processor: -> Pairs: U21#(tt,V1) -> U22#(isNatKind(V1),V1) U22#(tt,V1) -> ISNAT(V1) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2.1.2: Reduction Pairs Processor: -> Pairs: U91#(tt,V1,V2) -> U92#(isNatKind(V1),V1,V2) U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U95#(tt,V2) -> ISNATLIST(V2) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U12(tt,V1) -> U13(isNatList(V1)) U13(tt) -> tt U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U102](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 1 [U103](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U104](X1,X2,X3) = X1 + 2.X2 + 2 [U105](X1,X2) = X1 + 2 [U106](X) = 2 [U11](X1,X2) = 2 [U12](X1,X2) = 2 [U13](X) = 2 [U21](X1,X2) = 2 [U22](X1,X2) = 2 [U23](X) = 2 [U31](X1,X2) = 2.X2 + 2 [U32](X1,X2) = 2.X2 + 2 [U33](X) = X + 2 [U41](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U42](X1,X2,X3) = 2.X1 + 2.X3 [U43](X1,X2,X3) = 2.X3 + 2 [U44](X1,X2,X3) = X1 + 2 [U45](X1,X2) = X1 + 2 [U46](X) = 2 [U51](X1,X2) = X1 + 2.X2 + 2 [U52](X) = X + 2 [U61](X1,X2) = X1 + 2 [U62](X) = 2 [U71](X) = 2 [U81](X) = 2 [U91](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U92](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 [U93](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U94](X1,X2,X3) = 2.X2 + 2.X3 [U95](X1,X2) = 2.X2 [U96](X) = X [isNat](X) = 2 [isNatIList](X) = 2.X + 2 [isNatIListKind](X) = 2.X [isNatKind](X) = 2 [isNatList](X) = 2.X [length](X) = 2.X + 2 [take](X1,X2) = 2.X1 + X2 + 2 [zeros] = 2 [0] = 0 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [s](X) = 1 [tt] = 2 [U91#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 1 [U92#](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U93#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U94#](X1,X2,X3) = 2.X2 + 2.X3 + 2 [U95#](X1,X2) = 2.X2 + 2 [ISNATLIST](X) = 2.X + 2 Problem 1.2.1.2: SCC Processor: -> Pairs: U92#(tt,V1,V2) -> U93#(isNatIListKind(V2),V1,V2) U93#(tt,V1,V2) -> U94#(isNatIListKind(V2),V1,V2) U94#(tt,V1,V2) -> U95#(isNat(V1),V2) U95#(tt,V2) -> ISNATLIST(V2) ISNATLIST(cons(V1,V2)) -> U91#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.2.2: Reduction Pairs Processor: -> Pairs: U41#(tt,V1,V2) -> U42#(isNatKind(V1),V1,V2) U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U45#(tt,V2) -> ISNATILIST(V2) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U12(tt,V1) -> U13(isNatList(V1)) U13(tt) -> tt U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U102](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U103](X1,X2,X3) = 2.X3 + 2 [U104](X1,X2,X3) = X1 + 2.X3 [U105](X1,X2) = X2 + 2 [U106](X) = 2 [U11](X1,X2) = X1 + 2.X2 + 2 [U12](X1,X2) = X1 + 2.X2 + 2 [U13](X) = X + 2 [U21](X1,X2) = 2.X1 + 2 [U22](X1,X2) = 2 [U23](X) = 2 [U31](X1,X2) = 2.X2 + 2 [U32](X1,X2) = X1 + 2.X2 [U33](X) = X [U41](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42](X1,X2,X3) = 2.X1 + 2.X3 + 2 [U43](X1,X2,X3) = 2.X1 + 2.X3 + 1 [U44](X1,X2,X3) = X1 + 2 [U45](X1,X2) = 2 [U46](X) = 2 [U51](X1,X2) = 2 [U52](X) = 2 [U61](X1,X2) = 2 [U62](X) = 2 [U71](X) = 2 [U81](X) = X + 1 [U91](X1,X2,X3) = X1 + 2.X2 + 2.X3 + 2 [U92](X1,X2,X3) = 2.X1 + 2.X3 [U93](X1,X2,X3) = 2.X1 + 2.X3 [U94](X1,X2,X3) = 2.X1 + 2.X3 [U95](X1,X2) = 2.X2 + 2 [U96](X) = 2 [isNat](X) = 2.X + 2 [isNatIList](X) = 2.X + 2 [isNatIListKind](X) = 2 [isNatKind](X) = X + 1 [isNatList](X) = 2.X + 2 [length](X) = 2.X + 2 [take](X1,X2) = 2.X1 + 2.X2 + 2 [zeros] = 1 [0] = 2 [cons](X1,X2) = 2.X1 + 2.X2 + 2 [nil] = 2 [s](X) = 2.X + 1 [tt] = 2 [U41#](X1,X2,X3) = 2.X1 + 2.X2 + 2.X3 + 2 [U42#](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U43#](X1,X2,X3) = X1 + X2 + 2.X3 + 2 [U44#](X1,X2,X3) = X1 + X2 + 2.X3 + 1 [U45#](X1,X2) = 2.X2 + 2 [ISNATILIST](X) = 2.X + 2 Problem 1.2.2: SCC Processor: -> Pairs: U42#(tt,V1,V2) -> U43#(isNatIListKind(V2),V1,V2) U43#(tt,V1,V2) -> U44#(isNatIListKind(V2),V1,V2) U44#(tt,V1,V2) -> U45#(isNat(V1),V2) U45#(tt,V2) -> ISNATILIST(V2) ISNATILIST(cons(V1,V2)) -> U41#(isNatKind(V1),V1,V2) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.3: SubNColl Processor: -> Pairs: U131#(tt,IL,M,N) -> U132#(isNatIListKind(IL),IL,M,N) U132#(tt,IL,M,N) -> U133#(isNat(M),IL,M,N) U133#(tt,IL,M,N) -> U134#(isNatKind(M),IL,M,N) U134#(tt,IL,M,N) -> U135#(isNat(N),IL,M,N) U135#(tt,IL,M,N) -> U136#(isNatKind(N),IL,M,N) U136#(tt,IL,M,N) -> N TAKE(s(M),cons(N,IL)) -> U131#(isNatIList(IL),IL,M,N) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: take(M,IL) -> TAKE(M,IL) take(M,x7) -> x7 take(x7,IL) -> x7 ->Projection: pi(U131#) = 4 pi(U132#) = 4 pi(U133#) = 4 pi(U134#) = 4 pi(U135#) = 4 pi(U136#) = 4 pi(TAKE) = 2 Problem 1.3: SCC Processor: -> Pairs: U131#(tt,IL,M,N) -> U132#(isNatIListKind(IL),IL,M,N) U132#(tt,IL,M,N) -> U133#(isNat(M),IL,M,N) U133#(tt,IL,M,N) -> U134#(isNatKind(M),IL,M,N) U134#(tt,IL,M,N) -> U135#(isNat(N),IL,M,N) U135#(tt,IL,M,N) -> U136#(isNatKind(N),IL,M,N) U136#(tt,IL,M,N) -> N -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite. Problem 1.4: Reduction Pairs Processor: -> Pairs: U111#(tt,L,N) -> U112#(isNatIListKind(L),L,N) U112#(tt,L,N) -> U113#(isNat(N),L,N) U113#(tt,L,N) -> U114#(isNatKind(N),L) U114#(tt,L) -> LENGTH(L) LENGTH(cons(N,L)) -> U111#(isNatList(L),L,N) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty -> Usable rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) ->Interpretation type: Linear ->Coefficients: Natural Numbers ->Dimension: 1 ->Bound: 2 ->Interpretation: [U101](X1,X2,X3) = X2 + 1 [U102](X1,X2,X3) = X2 + 1 [U103](X1,X2,X3) = X2 + 1 [U104](X1,X2,X3) = X2 + 1 [U105](X1,X2) = X1 [U106](X) = 2 [U11](X1,X2) = X2 + 1 [U111](X1,X2,X3) = 2.X2 [U112](X1,X2,X3) = 2.X2 [U113](X1,X2,X3) = 2.X2 [U114](X1,X2) = 2.X2 [U12](X1,X2) = X2 + 1 [U121](X1,X2) = 2 [U122](X) = 2 [U13](X) = X [U131](X1,X2,X3,X4) = 2.X3 [U132](X1,X2,X3,X4) = 2.X3 [U133](X1,X2,X3,X4) = 2.X3 [U134](X1,X2,X3,X4) = 2.X3 [U135](X1,X2,X3,X4) = 2.X3 [U136](X1,X2,X3,X4) = 2.X3 [U21](X1,X2) = 2.X2 + 1 [U22](X1,X2) = 2.X2 + 1 [U23](X) = X [U31](X1,X2) = 2.X2 + 2 [U32](X1,X2) = 2.X2 + 2 [U33](X) = 2.X [U41](X1,X2,X3) = X1 + 2.X3 [U42](X1,X2,X3) = 2.X3 + 2 [U43](X1,X2,X3) = 2.X3 + 2 [U44](X1,X2,X3) = 2.X3 + 2 [U45](X1,X2) = 2.X2 + 2 [U46](X) = X [U51](X1,X2) = 2 [U52](X) = 2 [U61](X1,X2) = 2 [U62](X) = X [U71](X) = 2 [U81](X) = 2 [U91](X1,X2,X3) = 2.X3 + 1 [U92](X1,X2,X3) = 2.X3 + 1 [U93](X1,X2,X3) = 2.X3 + 1 [U94](X1,X2,X3) = 2.X3 + 1 [U95](X1,X2) = 2.X2 + 1 [U96](X) = X [isNat](X) = X + 1 [isNatIList](X) = 2.X + 2 [isNatIListKind](X) = 2 [isNatKind](X) = 2 [isNatList](X) = X + 1 [length](X) = X [take](X1,X2) = X1 [zeros] = 0 [0] = 2 [cons](X1,X2) = 2.X2 [nil] = 2 [s](X) = 2.X [tt] = 2 [U111#](X1,X2,X3) = 2.X1 + 2.X2 [U112#](X1,X2,X3) = X1 + 2.X2 + 1 [U113#](X1,X2,X3) = 2.X2 + 2 [U114#](X1,X2) = X1 + 2.X2 [LENGTH](X) = 2.X + 2 Problem 1.4: SCC Processor: -> Pairs: U112#(tt,L,N) -> U113#(isNat(N),L,N) U113#(tt,L,N) -> U114#(isNatKind(N),L) U114#(tt,L) -> LENGTH(L) LENGTH(cons(N,L)) -> U111#(isNatList(L),L,N) -> Rules: U101(tt,V1,V2) -> U102(isNatKind(V1),V1,V2) U102(tt,V1,V2) -> U103(isNatIListKind(V2),V1,V2) U103(tt,V1,V2) -> U104(isNatIListKind(V2),V1,V2) U104(tt,V1,V2) -> U105(isNat(V1),V2) U105(tt,V2) -> U106(isNatIList(V2)) U106(tt) -> tt U11(tt,V1) -> U12(isNatIListKind(V1),V1) U111(tt,L,N) -> U112(isNatIListKind(L),L,N) U112(tt,L,N) -> U113(isNat(N),L,N) U113(tt,L,N) -> U114(isNatKind(N),L) U114(tt,L) -> s(length(L)) U12(tt,V1) -> U13(isNatList(V1)) U121(tt,IL) -> U122(isNatIListKind(IL)) U122(tt) -> nil U13(tt) -> tt U131(tt,IL,M,N) -> U132(isNatIListKind(IL),IL,M,N) U132(tt,IL,M,N) -> U133(isNat(M),IL,M,N) U133(tt,IL,M,N) -> U134(isNatKind(M),IL,M,N) U134(tt,IL,M,N) -> U135(isNat(N),IL,M,N) U135(tt,IL,M,N) -> U136(isNatKind(N),IL,M,N) U136(tt,IL,M,N) -> cons(N,take(M,IL)) U21(tt,V1) -> U22(isNatKind(V1),V1) U22(tt,V1) -> U23(isNat(V1)) U23(tt) -> tt U31(tt,V) -> U32(isNatIListKind(V),V) U32(tt,V) -> U33(isNatList(V)) U33(tt) -> tt U41(tt,V1,V2) -> U42(isNatKind(V1),V1,V2) U42(tt,V1,V2) -> U43(isNatIListKind(V2),V1,V2) U43(tt,V1,V2) -> U44(isNatIListKind(V2),V1,V2) U44(tt,V1,V2) -> U45(isNat(V1),V2) U45(tt,V2) -> U46(isNatIList(V2)) U46(tt) -> tt U51(tt,V2) -> U52(isNatIListKind(V2)) U52(tt) -> tt U61(tt,V2) -> U62(isNatIListKind(V2)) U62(tt) -> tt U71(tt) -> tt U81(tt) -> tt U91(tt,V1,V2) -> U92(isNatKind(V1),V1,V2) U92(tt,V1,V2) -> U93(isNatIListKind(V2),V1,V2) U93(tt,V1,V2) -> U94(isNatIListKind(V2),V1,V2) U94(tt,V1,V2) -> U95(isNat(V1),V2) U95(tt,V2) -> U96(isNatList(V2)) U96(tt) -> tt isNat(length(V1)) -> U11(isNatIListKind(V1),V1) isNat(0) -> tt isNat(s(V1)) -> U21(isNatKind(V1),V1) isNatIList(zeros) -> tt isNatIList(cons(V1,V2)) -> U41(isNatKind(V1),V1,V2) isNatIList(V) -> U31(isNatIListKind(V),V) isNatIListKind(take(V1,V2)) -> U61(isNatKind(V1),V2) isNatIListKind(zeros) -> tt isNatIListKind(cons(V1,V2)) -> U51(isNatKind(V1),V2) isNatIListKind(nil) -> tt isNatKind(length(V1)) -> U71(isNatIListKind(V1)) isNatKind(0) -> tt isNatKind(s(V1)) -> U81(isNatKind(V1)) isNatList(take(V1,V2)) -> U101(isNatKind(V1),V1,V2) isNatList(cons(V1,V2)) -> U91(isNatKind(V1),V1,V2) isNatList(nil) -> tt length(cons(N,L)) -> U111(isNatList(L),L,N) length(nil) -> 0 take(0,IL) -> U121(isNatIList(IL),IL) take(s(M),cons(N,IL)) -> U131(isNatIList(IL),IL,M,N) zeros -> cons(0,zeros) -> Unhiding rules: Empty ->Strongly Connected Components: There is no strongly connected component The problem is finite.