0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 QDPOrderProof (⇔)
↳11 QDP
↳12 PisEmptyProof (⇔)
↳13 TRUE
↳14 QDP
↳15 QDPOrderProof (⇔)
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 QDPOrderProof (⇔)
↳20 QDP
↳21 QDPOrderProof (⇔)
↳22 QDP
↳23 QDPOrderProof (⇔)
↳24 QDP
↳25 QDPOrderProof (⇔)
↳26 QDP
↳27 PisEmptyProof (⇔)
↳28 TRUE
↳29 QDP
↳30 QDPOrderProof (⇔)
↳31 QDP
↳32 QDPOrderProof (⇔)
↳33 QDP
↳34 QDPOrderProof (⇔)
↳35 QDP
↳36 QDPOrderProof (⇔)
↳37 QDP
↳38 QDPOrderProof (⇔)
↳39 QDP
↳40 QDPOrderProof (⇔)
↳41 QDP
↳42 PisEmptyProof (⇔)
↳43 TRUE
↳44 QDP
↳45 QDPOrderProof (⇔)
↳46 QDP
↳47 QDPOrderProof (⇔)
↳48 QDP
↳49 QDPOrderProof (⇔)
↳50 QDP
↳51 QDPOrderProof (⇔)
↳52 QDP
↳53 QDPOrderProof (⇔)
↳54 QDP
↳55 QDPOrderProof (⇔)
↳56 QDP
↳57 PisEmptyProof (⇔)
↳58 TRUE
↳59 QDP
↳60 QDPOrderProof (⇔)
↳61 QDP
↳62 PisEmptyProof (⇔)
↳63 TRUE
↳64 QDP
↳65 QDPOrderProof (⇔)
↳66 QDP
↳67 PisEmptyProof (⇔)
↳68 TRUE
↳69 QDP
↳70 QDPOrderProof (⇔)
↳71 QDP
↳72 PisEmptyProof (⇔)
↳73 TRUE
↳74 QDP
↳75 QDPOrderProof (⇔)
↳76 QDP
↳77 PisEmptyProof (⇔)
↳78 TRUE
↳79 QDP
↳80 QDPOrderProof (⇔)
↳81 QDP
↳82 QDPOrderProof (⇔)
↳83 QDP
↳84 QDPOrderProof (⇔)
↳85 QDP
↳86 PisEmptyProof (⇔)
↳87 TRUE
↳88 QDP
↳89 QDPOrderProof (⇔)
↳90 QDP
↳91 QDPOrderProof (⇔)
↳92 QDP
↳93 QDPOrderProof (⇔)
↳94 QDP
↳95 QDPOrderProof (⇔)
↳96 QDP
↳97 QDPOrderProof (⇔)
↳98 QDP
↳99 QDPOrderProof (⇔)
↳100 QDP
↳101 PisEmptyProof (⇔)
↳102 TRUE
↳103 QDP
↳104 QDPOrderProof (⇔)
↳105 QDP
↳106 PisEmptyProof (⇔)
↳107 TRUE
↳108 QDP
↳109 QDPOrderProof (⇔)
↳110 QDP
↳111 QDPOrderProof (⇔)
↳112 QDP
↳113 QDPOrderProof (⇔)
↳114 QDP
↳115 PisEmptyProof (⇔)
↳116 TRUE
↳117 QDP
↳118 QDPOrderProof (⇔)
↳119 QDP
↳120 PisEmptyProof (⇔)
↳121 TRUE
↳122 QDP
↳123 QDPOrderProof (⇔)
↳124 QDP
↳125 PisEmptyProof (⇔)
↳126 TRUE
↳127 QDP
↳128 QDPOrderProof (⇔)
↳129 QDP
↳130 QDPOrderProof (⇔)
↳131 QDP
↳132 QDPOrderProof (⇔)
↳133 QDP
↳134 PisEmptyProof (⇔)
↳135 TRUE
↳136 QDP
↳137 QDPOrderProof (⇔)
↳138 QDP
↳139 PisEmptyProof (⇔)
↳140 TRUE
↳141 QDP
↳142 QDPOrderProof (⇔)
↳143 QDP
↳144 PisEmptyProof (⇔)
↳145 TRUE
↳146 QDP
↳147 QDPOrderProof (⇔)
↳148 QDP
↳149 QDPOrderProof (⇔)
↳150 QDP
↳151 QDPOrderProof (⇔)
↳152 QDP
↳153 PisEmptyProof (⇔)
↳154 TRUE
↳155 QDP
↳156 QDPOrderProof (⇔)
↳157 QDP
↳158 PisEmptyProof (⇔)
↳159 TRUE
↳160 QDP
↳161 QDPOrderProof (⇔)
↳162 QDP
↳163 PisEmptyProof (⇔)
↳164 TRUE
↳165 QDP
↳166 QDPOrderProof (⇔)
↳167 QDP
↳168 PisEmptyProof (⇔)
↳169 TRUE
↳170 QDP
↳171 QDPOrderProof (⇔)
↳172 QDP
↳173 QDPOrderProof (⇔)
↳174 QDP
↳175 QDPOrderProof (⇔)
↳176 QDP
↳177 PisEmptyProof (⇔)
↳178 TRUE
↳179 QDP
↳180 QDPOrderProof (⇔)
↳181 QDP
↳182 QDPOrderProof (⇔)
↳183 QDP
↳184 QDPOrderProof (⇔)
↳185 QDP
↳186 QDPOrderProof (⇔)
↳187 QDP
↳188 QDPOrderProof (⇔)
↳189 QDP
↳190 QDPOrderProof (⇔)
↳191 QDP
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(zeros) → CONS(0, zeros)
ACTIVE(U11(tt)) → MARK(tt)
ACTIVE(U21(tt)) → MARK(tt)
ACTIVE(U31(tt)) → MARK(tt)
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
ACTIVE(U41(tt, V2)) → U421(isNatIList(V2))
ACTIVE(U41(tt, V2)) → ISNATILIST(V2)
ACTIVE(U42(tt)) → MARK(tt)
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
ACTIVE(U51(tt, V2)) → U521(isNatList(V2))
ACTIVE(U51(tt, V2)) → ISNATLIST(V2)
ACTIVE(U52(tt)) → MARK(tt)
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
ACTIVE(U61(tt, V2)) → U621(isNatIList(V2))
ACTIVE(U61(tt, V2)) → ISNATILIST(V2)
ACTIVE(U62(tt)) → MARK(tt)
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
ACTIVE(U71(tt, L, N)) → U721(isNat(N), L)
ACTIVE(U71(tt, L, N)) → ISNAT(N)
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
ACTIVE(U72(tt, L)) → S(length(L))
ACTIVE(U72(tt, L)) → LENGTH(L)
ACTIVE(U81(tt)) → MARK(nil)
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
ACTIVE(U91(tt, IL, M, N)) → U921(isNat(M), IL, M, N)
ACTIVE(U91(tt, IL, M, N)) → ISNAT(M)
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
ACTIVE(U92(tt, IL, M, N)) → U931(isNat(N), IL, M, N)
ACTIVE(U92(tt, IL, M, N)) → ISNAT(N)
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
ACTIVE(U93(tt, IL, M, N)) → CONS(N, take(M, IL))
ACTIVE(U93(tt, IL, M, N)) → TAKE(M, IL)
ACTIVE(isNat(0)) → MARK(tt)
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
ACTIVE(isNat(length(V1))) → U111(isNatList(V1))
ACTIVE(isNat(length(V1))) → ISNATLIST(V1)
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
ACTIVE(isNat(s(V1))) → U211(isNat(V1))
ACTIVE(isNat(s(V1))) → ISNAT(V1)
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
ACTIVE(isNatIList(V)) → U311(isNatList(V))
ACTIVE(isNatIList(V)) → ISNATLIST(V)
ACTIVE(isNatIList(zeros)) → MARK(tt)
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
ACTIVE(isNatIList(cons(V1, V2))) → U411(isNat(V1), V2)
ACTIVE(isNatIList(cons(V1, V2))) → ISNAT(V1)
ACTIVE(isNatList(nil)) → MARK(tt)
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
ACTIVE(isNatList(cons(V1, V2))) → U511(isNat(V1), V2)
ACTIVE(isNatList(cons(V1, V2))) → ISNAT(V1)
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
ACTIVE(isNatList(take(V1, V2))) → U611(isNat(V1), V2)
ACTIVE(isNatList(take(V1, V2))) → ISNAT(V1)
ACTIVE(length(nil)) → MARK(0)
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
ACTIVE(length(cons(N, L))) → U711(isNatList(L), L, N)
ACTIVE(length(cons(N, L))) → ISNATLIST(L)
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
ACTIVE(take(0, IL)) → U811(isNatIList(IL))
ACTIVE(take(0, IL)) → ISNATILIST(IL)
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
ACTIVE(take(s(M), cons(N, IL))) → U911(isNatIList(IL), IL, M, N)
ACTIVE(take(s(M), cons(N, IL))) → ISNATILIST(IL)
MARK(zeros) → ACTIVE(zeros)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
MARK(cons(X1, X2)) → CONS(mark(X1), X2)
MARK(cons(X1, X2)) → MARK(X1)
MARK(0) → ACTIVE(0)
MARK(U11(X)) → ACTIVE(U11(mark(X)))
MARK(U11(X)) → U111(mark(X))
MARK(U11(X)) → MARK(X)
MARK(tt) → ACTIVE(tt)
MARK(U21(X)) → ACTIVE(U21(mark(X)))
MARK(U21(X)) → U211(mark(X))
MARK(U21(X)) → MARK(X)
MARK(U31(X)) → ACTIVE(U31(mark(X)))
MARK(U31(X)) → U311(mark(X))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
MARK(U41(X1, X2)) → U411(mark(X1), X2)
MARK(U41(X1, X2)) → MARK(X1)
MARK(U42(X)) → ACTIVE(U42(mark(X)))
MARK(U42(X)) → U421(mark(X))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
MARK(U51(X1, X2)) → U511(mark(X1), X2)
MARK(U51(X1, X2)) → MARK(X1)
MARK(U52(X)) → ACTIVE(U52(mark(X)))
MARK(U52(X)) → U521(mark(X))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
MARK(U61(X1, X2)) → U611(mark(X1), X2)
MARK(U61(X1, X2)) → MARK(X1)
MARK(U62(X)) → ACTIVE(U62(mark(X)))
MARK(U62(X)) → U621(mark(X))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
MARK(U71(X1, X2, X3)) → U711(mark(X1), X2, X3)
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
MARK(U72(X1, X2)) → U721(mark(X1), X2)
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → S(mark(X))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
MARK(length(X)) → LENGTH(mark(X))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → ACTIVE(U81(mark(X)))
MARK(U81(X)) → U811(mark(X))
MARK(U81(X)) → MARK(X)
MARK(nil) → ACTIVE(nil)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → U911(mark(X1), X2, X3, X4)
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → U921(mark(X1), X2, X3, X4)
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → U931(mark(X1), X2, X3, X4)
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → TAKE(mark(X1), mark(X2))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
U111(mark(X)) → U111(X)
U111(active(X)) → U111(X)
U211(mark(X)) → U211(X)
U211(active(X)) → U211(X)
U311(mark(X)) → U311(X)
U311(active(X)) → U311(X)
U411(mark(X1), X2) → U411(X1, X2)
U411(X1, mark(X2)) → U411(X1, X2)
U411(active(X1), X2) → U411(X1, X2)
U411(X1, active(X2)) → U411(X1, X2)
U421(mark(X)) → U421(X)
U421(active(X)) → U421(X)
ISNATILIST(mark(X)) → ISNATILIST(X)
ISNATILIST(active(X)) → ISNATILIST(X)
U511(mark(X1), X2) → U511(X1, X2)
U511(X1, mark(X2)) → U511(X1, X2)
U511(active(X1), X2) → U511(X1, X2)
U511(X1, active(X2)) → U511(X1, X2)
U521(mark(X)) → U521(X)
U521(active(X)) → U521(X)
ISNATLIST(mark(X)) → ISNATLIST(X)
ISNATLIST(active(X)) → ISNATLIST(X)
U611(mark(X1), X2) → U611(X1, X2)
U611(X1, mark(X2)) → U611(X1, X2)
U611(active(X1), X2) → U611(X1, X2)
U611(X1, active(X2)) → U611(X1, X2)
U621(mark(X)) → U621(X)
U621(active(X)) → U621(X)
U711(mark(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, mark(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, mark(X3)) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)
U721(mark(X1), X2) → U721(X1, X2)
U721(X1, mark(X2)) → U721(X1, X2)
U721(active(X1), X2) → U721(X1, X2)
U721(X1, active(X2)) → U721(X1, X2)
ISNAT(mark(X)) → ISNAT(X)
ISNAT(active(X)) → ISNAT(X)
S(mark(X)) → S(X)
S(active(X)) → S(X)
LENGTH(mark(X)) → LENGTH(X)
LENGTH(active(X)) → LENGTH(X)
U811(mark(X)) → U811(X)
U811(active(X)) → U811(X)
U911(mark(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, mark(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, mark(X3), X4) → U911(X1, X2, X3, X4)
U911(X1, X2, X3, mark(X4)) → U911(X1, X2, X3, X4)
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, active(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, active(X3), X4) → U911(X1, X2, X3, X4)
U911(X1, X2, X3, active(X4)) → U911(X1, X2, X3, X4)
U921(mark(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, mark(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, mark(X3), X4) → U921(X1, X2, X3, X4)
U921(X1, X2, X3, mark(X4)) → U921(X1, X2, X3, X4)
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, active(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, active(X3), X4) → U921(X1, X2, X3, X4)
U921(X1, X2, X3, active(X4)) → U921(X1, X2, X3, X4)
U931(mark(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, mark(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, mark(X3), X4) → U931(X1, X2, X3, X4)
U931(X1, X2, X3, mark(X4)) → U931(X1, X2, X3, X4)
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, active(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, active(X3), X4) → U931(X1, X2, X3, X4)
U931(X1, X2, X3, active(X4)) → U931(X1, X2, X3, X4)
TAKE(mark(X1), X2) → TAKE(X1, X2)
TAKE(X1, mark(X2)) → TAKE(X1, X2)
TAKE(active(X1), X2) → TAKE(X1, X2)
TAKE(X1, active(X2)) → TAKE(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
TAKE(X1, mark(X2)) → TAKE(X1, X2)
TAKE(mark(X1), X2) → TAKE(X1, X2)
TAKE(active(X1), X2) → TAKE(X1, X2)
TAKE(X1, active(X2)) → TAKE(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TAKE(mark(X1), X2) → TAKE(X1, X2)
TAKE(active(X1), X2) → TAKE(X1, X2)
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > TAKE1
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > TAKE1
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > 0
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
TAKE(X1, mark(X2)) → TAKE(X1, X2)
TAKE(X1, active(X2)) → TAKE(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TAKE(X1, mark(X2)) → TAKE(X1, X2)
zeros > 0 > isNatIList > U31 > tt > s > mark1 > TAKE2
zeros > 0 > isNatIList > U31 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > TAKE2
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > TAKE2
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > TAKE2
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > TAKE2
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > TAKE2
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > TAKE2
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > TAKE2
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
zeros > 0 > U81 > mark1 > TAKE2
zeros > 0 > U81 > mark1 > cons
zeros > 0 > U81 > mark1 > nil
[U51, isNatList1] > U52 > tt > s > mark1 > TAKE2
[U51, isNatList1] > U52 > tt > s > mark1 > cons
[U51, isNatList1] > U52 > tt > s > mark1 > nil
[U51, isNatList1] > U52 > tt > U93 > mark1 > TAKE2
[U51, isNatList1] > U52 > tt > U93 > mark1 > cons
[U51, isNatList1] > U52 > tt > U93 > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > TAKE2
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > TAKE2
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > TAKE2
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > TAKE2
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > TAKE2
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > TAKE2
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U31 > tt > s > mark1 > TAKE2
length > 0 > isNatIList > U31 > tt > s > mark1 > cons
length > 0 > isNatIList > U31 > tt > s > mark1 > nil
length > 0 > isNatIList > U31 > tt > U93 > mark1 > TAKE2
length > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > TAKE2
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > TAKE2
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > TAKE2
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > TAKE2
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > TAKE2
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > TAKE2
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > U81 > mark1 > TAKE2
length > 0 > U81 > mark1 > cons
length > 0 > U81 > mark1 > nil
length > U71 > U72 > s > mark1 > TAKE2
length > U71 > U72 > s > mark1 > cons
length > U71 > U72 > s > mark1 > nil
length > U71 > isNat > U11 > tt > s > mark1 > TAKE2
length > U71 > isNat > U11 > tt > s > mark1 > cons
length > U71 > isNat > U11 > tt > s > mark1 > nil
length > U71 > isNat > U11 > tt > U93 > mark1 > TAKE2
length > U71 > isNat > U11 > tt > U93 > mark1 > cons
length > U71 > isNat > U11 > tt > U93 > mark1 > nil
length > U71 > isNat > U21 > tt > s > mark1 > TAKE2
length > U71 > isNat > U21 > tt > s > mark1 > cons
length > U71 > isNat > U21 > tt > s > mark1 > nil
length > U71 > isNat > U21 > tt > U93 > mark1 > TAKE2
length > U71 > isNat > U21 > tt > U93 > mark1 > cons
length > U71 > isNat > U21 > tt > U93 > mark1 > nil
take > isNatIList > U31 > tt > s > mark1 > TAKE2
take > isNatIList > U31 > tt > s > mark1 > cons
take > isNatIList > U31 > tt > s > mark1 > nil
take > isNatIList > U31 > tt > U93 > mark1 > TAKE2
take > isNatIList > U31 > tt > U93 > mark1 > cons
take > isNatIList > U31 > tt > U93 > mark1 > nil
take > isNatIList > U41 > U42 > tt > s > mark1 > TAKE2
take > isNatIList > U41 > U42 > tt > s > mark1 > cons
take > isNatIList > U41 > U42 > tt > s > mark1 > nil
take > isNatIList > U41 > U42 > tt > U93 > mark1 > TAKE2
take > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
take > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U11 > tt > s > mark1 > TAKE2
take > isNatIList > isNat > U11 > tt > s > mark1 > cons
take > isNatIList > isNat > U11 > tt > s > mark1 > nil
take > isNatIList > isNat > U11 > tt > U93 > mark1 > TAKE2
take > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U21 > tt > s > mark1 > TAKE2
take > isNatIList > isNat > U21 > tt > s > mark1 > cons
take > isNatIList > isNat > U21 > tt > s > mark1 > nil
take > isNatIList > isNat > U21 > tt > U93 > mark1 > TAKE2
take > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
take > U61 > U62 > tt > s > mark1 > TAKE2
take > U61 > U62 > tt > s > mark1 > cons
take > U61 > U62 > tt > s > mark1 > nil
take > U61 > U62 > tt > U93 > mark1 > TAKE2
take > U61 > U62 > tt > U93 > mark1 > cons
take > U61 > U62 > tt > U93 > mark1 > nil
take > U81 > mark1 > TAKE2
take > U81 > mark1 > cons
take > U81 > mark1 > nil
take > U91 > isNat > U11 > tt > s > mark1 > TAKE2
take > U91 > isNat > U11 > tt > s > mark1 > cons
take > U91 > isNat > U11 > tt > s > mark1 > nil
take > U91 > isNat > U11 > tt > U93 > mark1 > TAKE2
take > U91 > isNat > U11 > tt > U93 > mark1 > cons
take > U91 > isNat > U11 > tt > U93 > mark1 > nil
take > U91 > isNat > U21 > tt > s > mark1 > TAKE2
take > U91 > isNat > U21 > tt > s > mark1 > cons
take > U91 > isNat > U21 > tt > s > mark1 > nil
take > U91 > isNat > U21 > tt > U93 > mark1 > TAKE2
take > U91 > isNat > U21 > tt > U93 > mark1 > cons
take > U91 > isNat > U21 > tt > U93 > mark1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
TAKE(X1, active(X2)) → TAKE(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TAKE(X1, active(X2)) → TAKE(X1, X2)
zeros > cons > U51 > U52 > [mark1, tt] > 0 > [TAKE1, active1] > s
zeros > cons > U51 > U52 > [mark1, tt] > length1 > [TAKE1, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > 0 > [TAKE1, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > U62 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > U62 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > length1 > [TAKE1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > 0 > [TAKE1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > length1 > [TAKE1, active1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U931(X1, mark(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(mark(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, mark(X3), X4) → U931(X1, X2, X3, X4)
U931(X1, X2, X3, mark(X4)) → U931(X1, X2, X3, X4)
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, active(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, active(X3), X4) → U931(X1, X2, X3, X4)
U931(X1, X2, X3, active(X4)) → U931(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U931(X1, X2, X3, mark(X4)) → U931(X1, X2, X3, X4)
U931(X1, X2, X3, active(X4)) → U931(X1, X2, X3, X4)
zeros > 0 > [cons, tt] > [U93^11, mark1] > active1 > U721
zeros > 0 > [cons, tt] > [U93^11, mark1] > active1 > s
zeros > 0 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U81 > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U81 > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U81 > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U93^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U93^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U93^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U93^11, mark1] > active1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U931(X1, mark(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(mark(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, mark(X3), X4) → U931(X1, X2, X3, X4)
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, active(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, active(X3), X4) → U931(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U931(X1, X2, mark(X3), X4) → U931(X1, X2, X3, X4)
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > U93^12
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > cons
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > U93^12
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > U93^12
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > U93^12
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > U93^12
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > U93^12
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > U93^12
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > U93^12
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U931(X1, mark(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(mark(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, active(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, active(X3), X4) → U931(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U931(mark(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
zeros > [cons, U41, isNat] > U11 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U11 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U21 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U21 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U42 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U42 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > s
zeros > [0, nil] > [mark1, tt, length1] > isNatList1
zeros > [0, nil] > [mark1, tt, length1] > s
take > U61 > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
take > U61 > isNatIList1 > U31 > [mark1, tt, length1] > s
take > U61 > U62 > [mark1, tt, length1] > isNatList1
take > U61 > U62 > [mark1, tt, length1] > s
take > U81 > [0, nil] > [mark1, tt, length1] > isNatList1
take > U81 > [0, nil] > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U11 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U11 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U21 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U21 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U42 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U42 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U931(X1, mark(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, active(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, active(X3), X4) → U931(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U931(X1, mark(X2), X3, X4) → U931(X1, X2, X3, X4)
U931(X1, active(X2), X3, X4) → U931(X1, X2, X3, X4)
zeros > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U93^11, mark1, active1, 0, s]
[U11, U21, U31, U41, isNatIList1, isNat, U81, U91, U92, take] > nil > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U93^11, mark1, active1, 0, s]
length > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U93^11, mark1, active1, 0, s]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U931(X1, X2, active(X3), X4) → U931(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U931(X1, X2, active(X3), X4) → U931(X1, X2, X3, X4)
zeros > [active1, mark1, U61, U62] > U42 > [tt, U21]
zeros > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U31 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U31 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U41 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U41 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U11 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U11 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U511 > U52 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U511 > U52 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U71 > U72 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U71 > U72 > [active1, mark1, U61, U62] > s > [tt, U21]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U931(active(X1), X2, X3, X4) → U931(X1, X2, X3, X4)
U93^12 > U931
zeros > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
zeros > tt > length > 0 > mark1 > nil > active1 > s > U931
zeros > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U81 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U921(X1, mark(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(mark(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, mark(X3), X4) → U921(X1, X2, X3, X4)
U921(X1, X2, X3, mark(X4)) → U921(X1, X2, X3, X4)
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, active(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, active(X3), X4) → U921(X1, X2, X3, X4)
U921(X1, X2, X3, active(X4)) → U921(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(X1, X2, X3, mark(X4)) → U921(X1, X2, X3, X4)
U921(X1, X2, X3, active(X4)) → U921(X1, X2, X3, X4)
zeros > 0 > [cons, tt] > [U92^11, mark1] > active1 > U721
zeros > 0 > [cons, tt] > [U92^11, mark1] > active1 > s
zeros > 0 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U81 > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U81 > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U81 > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U92^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U92^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U92^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U92^11, mark1] > active1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U921(X1, mark(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(mark(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, mark(X3), X4) → U921(X1, X2, X3, X4)
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, active(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, active(X3), X4) → U921(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(X1, X2, mark(X3), X4) → U921(X1, X2, X3, X4)
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > U92^12
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > cons
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > U92^12
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > U92^12
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > U92^12
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > U92^12
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > U92^12
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > U92^12
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > U92^12
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U921(X1, mark(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(mark(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, active(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, active(X3), X4) → U921(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(mark(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
zeros > [cons, U41, isNat] > U11 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U11 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U21 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U21 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U42 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U42 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > s
zeros > [0, nil] > [mark1, tt, length1] > isNatList1
zeros > [0, nil] > [mark1, tt, length1] > s
take > U61 > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
take > U61 > isNatIList1 > U31 > [mark1, tt, length1] > s
take > U61 > U62 > [mark1, tt, length1] > isNatList1
take > U61 > U62 > [mark1, tt, length1] > s
take > U81 > [0, nil] > [mark1, tt, length1] > isNatList1
take > U81 > [0, nil] > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U11 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U11 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U21 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U21 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U42 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U42 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U921(X1, mark(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, active(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, active(X3), X4) → U921(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(X1, mark(X2), X3, X4) → U921(X1, X2, X3, X4)
U921(X1, active(X2), X3, X4) → U921(X1, X2, X3, X4)
zeros > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U92^11, mark1, active1, 0, s]
[U11, U21, U31, U41, isNatIList1, isNat, U81, U91, U92, take] > nil > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U92^11, mark1, active1, 0, s]
length > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U92^11, mark1, active1, 0, s]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U921(X1, X2, active(X3), X4) → U921(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(X1, X2, active(X3), X4) → U921(X1, X2, X3, X4)
zeros > [active1, mark1, U61, U62] > U42 > [tt, U21]
zeros > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U31 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U31 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U41 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U41 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U11 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U11 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U511 > U52 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U511 > U52 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U71 > U72 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U71 > U72 > [active1, mark1, U61, U62] > s > [tt, U21]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(active(X1), X2, X3, X4) → U921(X1, X2, X3, X4)
U92^12 > U931
zeros > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
zeros > tt > length > 0 > mark1 > nil > active1 > s > U931
zeros > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U81 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U911(X1, mark(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(mark(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, mark(X3), X4) → U911(X1, X2, X3, X4)
U911(X1, X2, X3, mark(X4)) → U911(X1, X2, X3, X4)
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, active(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, active(X3), X4) → U911(X1, X2, X3, X4)
U911(X1, X2, X3, active(X4)) → U911(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U911(X1, X2, X3, mark(X4)) → U911(X1, X2, X3, X4)
U911(X1, X2, X3, active(X4)) → U911(X1, X2, X3, X4)
zeros > 0 > [cons, tt] > [U91^11, mark1] > active1 > U721
zeros > 0 > [cons, tt] > [U91^11, mark1] > active1 > s
zeros > 0 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > 0 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U31 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U41 > U42 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U51 > U52 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U62 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U11 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U21 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U71 > [isNat, U92] > U93 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U81 > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U81 > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U81 > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U11 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U21 > [cons, tt] > [U91^11, mark1] > active1 > nil
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U91^11, mark1] > active1 > U721
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U91^11, mark1] > active1 > s
[isNatIList, isNatList1, U61, length, take] > U91 > [isNat, U92] > U93 > [cons, tt] > [U91^11, mark1] > active1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U911(X1, mark(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(mark(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, mark(X3), X4) → U911(X1, X2, X3, X4)
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, active(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, active(X3), X4) → U911(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U911(X1, X2, mark(X3), X4) → U911(X1, X2, X3, X4)
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > U91^12
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > cons
zeros > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > U91^12
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [0, U81] > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > U91^12
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U11 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > U91^12
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > U91^12
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > U91^12
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > [isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > U91^12
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U31 > tt > U92 > U93 > [mark1, U621, take2] > nil
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > U91^12
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > cons
length > [U71, isNat] > U72 > [U21, isNatIList, s] > U41 > U42 > tt > U92 > U93 > [mark1, U621, take2] > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U911(X1, mark(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(mark(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, active(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, active(X3), X4) → U911(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U911(mark(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
zeros > [cons, U41, isNat] > U11 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U11 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U21 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U21 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U42 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U42 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > s
zeros > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > isNatList1
zeros > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > s
zeros > [0, nil] > [mark1, tt, length1] > isNatList1
zeros > [0, nil] > [mark1, tt, length1] > s
take > U61 > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
take > U61 > isNatIList1 > U31 > [mark1, tt, length1] > s
take > U61 > U62 > [mark1, tt, length1] > isNatList1
take > U61 > U62 > [mark1, tt, length1] > s
take > U81 > [0, nil] > [mark1, tt, length1] > isNatList1
take > U81 > [0, nil] > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U11 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U11 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U21 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U21 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U42 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U42 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > isNatIList1 > U31 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U51 > U52 > [mark1, tt, length1] > s
take > U91 > U92 > U93 > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > isNatList1
take > U91 > U92 > U93 > [cons, U41, isNat] > U71 > U72 > [mark1, tt, length1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U911(X1, mark(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, active(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, active(X3), X4) → U911(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U911(X1, mark(X2), X3, X4) → U911(X1, X2, X3, X4)
U911(X1, active(X2), X3, X4) → U911(X1, X2, X3, X4)
zeros > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U91^11, mark1, active1, 0, s]
[U11, U21, U31, U41, isNatIList1, isNat, U81, U91, U92, take] > nil > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U91^11, mark1, active1, 0, s]
length > [cons, tt, U42, U51, U52, U61, U62, U71, U72, U93] > [U91^11, mark1, active1, 0, s]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U911(X1, X2, active(X3), X4) → U911(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U911(X1, X2, active(X3), X4) → U911(X1, X2, X3, X4)
zeros > [active1, mark1, U61, U62] > U42 > [tt, U21]
zeros > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U31 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U31 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U41 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > 0 > [isNatIList, U81, nil, U91, U92, U93, take] > U41 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U11 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U11 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U511 > U52 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U511 > U52 > [active1, mark1, U61, U62] > s > [tt, U21]
[isNatList1, length] > U71 > U72 > [active1, mark1, U61, U62] > U42 > [tt, U21]
[isNatList1, length] > U71 > U72 > [active1, mark1, U61, U62] > s > [tt, U21]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U911(active(X1), X2, X3, X4) → U911(X1, X2, X3, X4)
U91^12 > U931
zeros > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
zeros > tt > length > 0 > mark1 > nil > active1 > s > U931
zeros > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U31 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U41 > U42 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U51 > U52 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > U61 > U62 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U11 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > isNatList > isNat > U21 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U81 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U11 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > cons > U71 > U72 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > length > 0 > mark1 > nil > active1 > s > U931
[isNatIList, take] > U91 > U92 > isNat > U21 > tt > length > U71 > U72 > mark1 > nil > active1 > s > U931
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U811(active(X)) → U811(X)
U811(mark(X)) → U811(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U811(active(X)) → U811(X)
U811(mark(X)) → U811(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
LENGTH(active(X)) → LENGTH(X)
LENGTH(mark(X)) → LENGTH(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LENGTH(active(X)) → LENGTH(X)
LENGTH(mark(X)) → LENGTH(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
S(active(X)) → S(X)
S(mark(X)) → S(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(active(X)) → S(X)
S(mark(X)) → S(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
ISNAT(active(X)) → ISNAT(X)
ISNAT(mark(X)) → ISNAT(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISNAT(active(X)) → ISNAT(X)
ISNAT(mark(X)) → ISNAT(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U721(X1, mark(X2)) → U721(X1, X2)
U721(mark(X1), X2) → U721(X1, X2)
U721(active(X1), X2) → U721(X1, X2)
U721(X1, active(X2)) → U721(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U721(mark(X1), X2) → U721(X1, X2)
U721(active(X1), X2) → U721(X1, X2)
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U72^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > U72^11
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > 0
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U721(X1, mark(X2)) → U721(X1, X2)
U721(X1, active(X2)) → U721(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U721(X1, mark(X2)) → U721(X1, X2)
zeros > 0 > isNatIList > U31 > tt > s > mark1 > U72^12
zeros > 0 > isNatIList > U31 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > U72^12
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U72^12
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U72^12
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U72^12
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U72^12
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U72^12
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U72^12
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
zeros > 0 > U81 > mark1 > U72^12
zeros > 0 > U81 > mark1 > cons
zeros > 0 > U81 > mark1 > nil
[U51, isNatList1] > U52 > tt > s > mark1 > U72^12
[U51, isNatList1] > U52 > tt > s > mark1 > cons
[U51, isNatList1] > U52 > tt > s > mark1 > nil
[U51, isNatList1] > U52 > tt > U93 > mark1 > U72^12
[U51, isNatList1] > U52 > tt > U93 > mark1 > cons
[U51, isNatList1] > U52 > tt > U93 > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > U72^12
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > U72^12
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > U72^12
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > U72^12
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > U72^12
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > U72^12
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U31 > tt > s > mark1 > U72^12
length > 0 > isNatIList > U31 > tt > s > mark1 > cons
length > 0 > isNatIList > U31 > tt > s > mark1 > nil
length > 0 > isNatIList > U31 > tt > U93 > mark1 > U72^12
length > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U72^12
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U72^12
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U72^12
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U72^12
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U72^12
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U72^12
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > U81 > mark1 > U72^12
length > 0 > U81 > mark1 > cons
length > 0 > U81 > mark1 > nil
length > U71 > U72 > s > mark1 > U72^12
length > U71 > U72 > s > mark1 > cons
length > U71 > U72 > s > mark1 > nil
length > U71 > isNat > U11 > tt > s > mark1 > U72^12
length > U71 > isNat > U11 > tt > s > mark1 > cons
length > U71 > isNat > U11 > tt > s > mark1 > nil
length > U71 > isNat > U11 > tt > U93 > mark1 > U72^12
length > U71 > isNat > U11 > tt > U93 > mark1 > cons
length > U71 > isNat > U11 > tt > U93 > mark1 > nil
length > U71 > isNat > U21 > tt > s > mark1 > U72^12
length > U71 > isNat > U21 > tt > s > mark1 > cons
length > U71 > isNat > U21 > tt > s > mark1 > nil
length > U71 > isNat > U21 > tt > U93 > mark1 > U72^12
length > U71 > isNat > U21 > tt > U93 > mark1 > cons
length > U71 > isNat > U21 > tt > U93 > mark1 > nil
take > isNatIList > U31 > tt > s > mark1 > U72^12
take > isNatIList > U31 > tt > s > mark1 > cons
take > isNatIList > U31 > tt > s > mark1 > nil
take > isNatIList > U31 > tt > U93 > mark1 > U72^12
take > isNatIList > U31 > tt > U93 > mark1 > cons
take > isNatIList > U31 > tt > U93 > mark1 > nil
take > isNatIList > U41 > U42 > tt > s > mark1 > U72^12
take > isNatIList > U41 > U42 > tt > s > mark1 > cons
take > isNatIList > U41 > U42 > tt > s > mark1 > nil
take > isNatIList > U41 > U42 > tt > U93 > mark1 > U72^12
take > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
take > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U11 > tt > s > mark1 > U72^12
take > isNatIList > isNat > U11 > tt > s > mark1 > cons
take > isNatIList > isNat > U11 > tt > s > mark1 > nil
take > isNatIList > isNat > U11 > tt > U93 > mark1 > U72^12
take > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U21 > tt > s > mark1 > U72^12
take > isNatIList > isNat > U21 > tt > s > mark1 > cons
take > isNatIList > isNat > U21 > tt > s > mark1 > nil
take > isNatIList > isNat > U21 > tt > U93 > mark1 > U72^12
take > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
take > U61 > U62 > tt > s > mark1 > U72^12
take > U61 > U62 > tt > s > mark1 > cons
take > U61 > U62 > tt > s > mark1 > nil
take > U61 > U62 > tt > U93 > mark1 > U72^12
take > U61 > U62 > tt > U93 > mark1 > cons
take > U61 > U62 > tt > U93 > mark1 > nil
take > U81 > mark1 > U72^12
take > U81 > mark1 > cons
take > U81 > mark1 > nil
take > U91 > isNat > U11 > tt > s > mark1 > U72^12
take > U91 > isNat > U11 > tt > s > mark1 > cons
take > U91 > isNat > U11 > tt > s > mark1 > nil
take > U91 > isNat > U11 > tt > U93 > mark1 > U72^12
take > U91 > isNat > U11 > tt > U93 > mark1 > cons
take > U91 > isNat > U11 > tt > U93 > mark1 > nil
take > U91 > isNat > U21 > tt > s > mark1 > U72^12
take > U91 > isNat > U21 > tt > s > mark1 > cons
take > U91 > isNat > U21 > tt > s > mark1 > nil
take > U91 > isNat > U21 > tt > U93 > mark1 > U72^12
take > U91 > isNat > U21 > tt > U93 > mark1 > cons
take > U91 > isNat > U21 > tt > U93 > mark1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U721(X1, active(X2)) → U721(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U721(X1, active(X2)) → U721(X1, X2)
zeros > cons > U51 > U52 > [mark1, tt] > 0 > [U72^11, active1] > s
zeros > cons > U51 > U52 > [mark1, tt] > length1 > [U72^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > 0 > [U72^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > U62 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > U62 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > length1 > [U72^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > 0 > [U72^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > length1 > [U72^11, active1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U711(X1, mark(X2), X3) → U711(X1, X2, X3)
U711(mark(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, X2, mark(X3)) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U711(mark(X1), X2, X3) → U711(X1, X2, X3)
U71^11 > mark1
zeros > cons > U41 > U42 > [tt, U72] > s > mark1
zeros > cons > U51 > U52 > [tt, U72] > s > mark1
zeros > cons > U51 > isNatList1 > [tt, U72] > s > mark1
zeros > cons > U71 > [tt, U72] > s > mark1
[isNatIList, U61, take] > U31 > [tt, U72] > s > mark1
[isNatIList, U61, take] > U62 > [tt, U72] > s > mark1
[isNatIList, U61, take] > [isNat, U91] > U11 > [tt, U72] > s > mark1
[isNatIList, U61, take] > [isNat, U91] > U21 > [tt, U72] > s > mark1
[isNatIList, U61, take] > [isNat, U91] > U92 > U93 > cons > U41 > U42 > [tt, U72] > s > mark1
[isNatIList, U61, take] > [isNat, U91] > U92 > U93 > cons > U51 > U52 > [tt, U72] > s > mark1
[isNatIList, U61, take] > [isNat, U91] > U92 > U93 > cons > U51 > isNatList1 > [tt, U72] > s > mark1
[isNatIList, U61, take] > [isNat, U91] > U92 > U93 > cons > U71 > [tt, U72] > s > mark1
[isNatIList, U61, take] > U81 > nil > 0 > [tt, U72] > s > mark1
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U711(X1, mark(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, mark(X3)) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U711(X1, X2, mark(X3)) → U711(X1, X2, X3)
zeros > [cons, U51] > isNatIList > U31 > tt > [U71^11, mark1, U621, s, nil]
zeros > [cons, U51] > isNatIList > U41 > U42 > tt > [U71^11, mark1, U621, s, nil]
zeros > [cons, U51] > isNatIList > isNatList1 > tt > [U71^11, mark1, U621, s, nil]
zeros > [cons, U51] > U52 > tt > [U71^11, mark1, U621, s, nil]
zeros > 0 > tt > [U71^11, mark1, U621, s, nil]
[U61, take] > U91 > U92 > isNat > U11 > tt > [U71^11, mark1, U621, s, nil]
[U61, take] > U91 > U92 > isNat > U21 > tt > [U71^11, mark1, U621, s, nil]
[U61, take] > U91 > U92 > isNat > isNatList1 > tt > [U71^11, mark1, U621, s, nil]
[U61, take] > U91 > U92 > U93 > [cons, U51] > isNatIList > U31 > tt > [U71^11, mark1, U621, s, nil]
[U61, take] > U91 > U92 > U93 > [cons, U51] > isNatIList > U41 > U42 > tt > [U71^11, mark1, U621, s, nil]
[U61, take] > U91 > U92 > U93 > [cons, U51] > isNatIList > isNatList1 > tt > [U71^11, mark1, U621, s, nil]
[U61, take] > U91 > U92 > U93 > [cons, U51] > U52 > tt > [U71^11, mark1, U621, s, nil]
length > 0 > tt > [U71^11, mark1, U621, s, nil]
length > U71 > isNat > U11 > tt > [U71^11, mark1, U621, s, nil]
length > U71 > isNat > U21 > tt > [U71^11, mark1, U621, s, nil]
length > U71 > isNat > isNatList1 > tt > [U71^11, mark1, U621, s, nil]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U711(X1, mark(X2), X3) → U711(X1, X2, X3)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U711(X1, mark(X2), X3) → U711(X1, X2, X3)
zeros > [U71^11, mark1, tt, U311, U931] > cons
zeros > [U71^11, mark1, tt, U311, U931] > 0
zeros > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > U41 > U42 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > U41 > U42 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > U41 > U42 > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > U51 > U52 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > U51 > U52 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > U51 > U52 > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > [U61, take] > U62 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > [U61, take] > U62 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > [U61, take] > U62 > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > [U61, take] > U81 > nil > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > [U61, take] > U81 > nil > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > [U61, take] > U81 > nil > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > [U61, take] > U91 > U92 > isNat > U11 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > [U61, take] > U91 > U92 > isNat > U11 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > [U61, take] > U91 > U92 > isNat > U11 > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > [U61, take] > U91 > U92 > isNat > U21 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > [U61, take] > U91 > U92 > isNat > U21 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > [U61, take] > U91 > U92 > isNat > U21 > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > U71 > U72 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > U71 > U72 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > U71 > U72 > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > U71 > isNat > U11 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > U71 > isNat > U11 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > U71 > isNat > U11 > [U71^11, mark1, tt, U311, U931] > s
[isNatIList1, isNatList, length] > U71 > isNat > U21 > [U71^11, mark1, tt, U311, U931] > cons
[isNatIList1, isNatList, length] > U71 > isNat > U21 > [U71^11, mark1, tt, U311, U931] > 0
[isNatIList1, isNatList, length] > U71 > isNat > U21 > [U71^11, mark1, tt, U311, U931] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U711(X1, X2, active(X3)) → U711(X1, X2, X3)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U711(X1, X2, active(X3)) → U711(X1, X2, X3)
zeros > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
zeros > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > U31 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > U31 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > U41 > U42 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > U41 > U42 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > U62 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > U62 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > isNat > U11 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > isNat > U11 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > isNat > U21 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > [isNatIList, U61] > isNat > U21 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > U52 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
[U51, isNatList1] > U52 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > U31 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > U31 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > U41 > U42 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > U41 > U42 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > U62 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > U62 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > isNat > U11 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > isNat > U11 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > isNat > U21 > tt > nil > 0 > mark1 > [active1, s] > U811 > length1
take > [isNatIList, U61] > isNat > U21 > tt > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
take > U91 > U92 > U93 > cons > U71 > U72 > mark1 > [active1, s] > U811 > length1
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
U711(X1, active(X2), X3) → U711(X1, X2, X3)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U711(X1, active(X2), X3) → U711(X1, X2, X3)
U71^12 > [active1, U911]
zeros > 0 > isNatIList > U31 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
zeros > 0 > isNatIList > U41 > U42 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
zeros > 0 > U81 > nil > tt > U92 > U93 > [mark1, cons] > [active1, U911]
[isNatList1, U61] > isNatIList > U31 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
[isNatList1, U61] > isNatIList > U41 > U42 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
[isNatList1, U61] > U51 > U52 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
[isNatList1, U61] > U62 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
length > 0 > isNatIList > U31 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
length > 0 > isNatIList > U41 > U42 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
length > 0 > U81 > nil > tt > U92 > U93 > [mark1, cons] > [active1, U911]
length > U11 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
length > U71 > U72 > s > U21 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
length > U71 > U72 > s > isNatIList > U31 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
length > U71 > U72 > s > isNatIList > U41 > U42 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
take > isNatIList > U31 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
take > isNatIList > U41 > U42 > tt > U92 > U93 > [mark1, cons] > [active1, U911]
take > U81 > nil > tt > U92 > U93 > [mark1, cons] > [active1, U911]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U711(active(X1), X2, X3) → U711(X1, X2, X3)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U711(active(X1), X2, X3) → U711(X1, X2, X3)
zeros > [active1, mark1, U51, U52] > U71^11 > [tt, U42]
zeros > [active1, mark1, U51, U52] > [cons, U11, U71, length] > 0 > [tt, U42]
zeros > [active1, mark1, U51, U52] > [cons, U11, U71, length] > [U21, U72, s] > [tt, U42]
zeros > [active1, mark1, U51, U52] > [U31, U41, isNatIList] > [tt, U42]
zeros > [active1, mark1, U51, U52] > U62 > [tt, U42]
zeros > [active1, mark1, U51, U52] > U81 > nil > 0 > [tt, U42]
isNatList > U61 > [active1, mark1, U51, U52] > U71^11 > [tt, U42]
isNatList > U61 > [active1, mark1, U51, U52] > [cons, U11, U71, length] > 0 > [tt, U42]
isNatList > U61 > [active1, mark1, U51, U52] > [cons, U11, U71, length] > [U21, U72, s] > [tt, U42]
isNatList > U61 > [active1, mark1, U51, U52] > [U31, U41, isNatIList] > [tt, U42]
isNatList > U61 > [active1, mark1, U51, U52] > U62 > [tt, U42]
isNatList > U61 > [active1, mark1, U51, U52] > U81 > nil > 0 > [tt, U42]
[U91, U92, U93, take] > U61 > [active1, mark1, U51, U52] > U71^11 > [tt, U42]
[U91, U92, U93, take] > U61 > [active1, mark1, U51, U52] > [cons, U11, U71, length] > 0 > [tt, U42]
[U91, U92, U93, take] > U61 > [active1, mark1, U51, U52] > [cons, U11, U71, length] > [U21, U72, s] > [tt, U42]
[U91, U92, U93, take] > U61 > [active1, mark1, U51, U52] > [U31, U41, isNatIList] > [tt, U42]
[U91, U92, U93, take] > U61 > [active1, mark1, U51, U52] > U62 > [tt, U42]
[U91, U92, U93, take] > U61 > [active1, mark1, U51, U52] > U81 > nil > 0 > [tt, U42]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U621(active(X)) → U621(X)
U621(mark(X)) → U621(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U621(active(X)) → U621(X)
U621(mark(X)) → U621(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U611(X1, mark(X2)) → U611(X1, X2)
U611(mark(X1), X2) → U611(X1, X2)
U611(active(X1), X2) → U611(X1, X2)
U611(X1, active(X2)) → U611(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U611(mark(X1), X2) → U611(X1, X2)
U611(active(X1), X2) → U611(X1, X2)
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U61^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > U61^11
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > 0
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U611(X1, mark(X2)) → U611(X1, X2)
U611(X1, active(X2)) → U611(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U611(X1, mark(X2)) → U611(X1, X2)
zeros > 0 > isNatIList > U31 > tt > s > mark1 > U61^12
zeros > 0 > isNatIList > U31 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > U61^12
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U61^12
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U61^12
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U61^12
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U61^12
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U61^12
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U61^12
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
zeros > 0 > U81 > mark1 > U61^12
zeros > 0 > U81 > mark1 > cons
zeros > 0 > U81 > mark1 > nil
[U51, isNatList1] > U52 > tt > s > mark1 > U61^12
[U51, isNatList1] > U52 > tt > s > mark1 > cons
[U51, isNatList1] > U52 > tt > s > mark1 > nil
[U51, isNatList1] > U52 > tt > U93 > mark1 > U61^12
[U51, isNatList1] > U52 > tt > U93 > mark1 > cons
[U51, isNatList1] > U52 > tt > U93 > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > U61^12
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > U61^12
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > U61^12
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > U61^12
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > U61^12
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > U61^12
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U31 > tt > s > mark1 > U61^12
length > 0 > isNatIList > U31 > tt > s > mark1 > cons
length > 0 > isNatIList > U31 > tt > s > mark1 > nil
length > 0 > isNatIList > U31 > tt > U93 > mark1 > U61^12
length > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U61^12
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U61^12
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U61^12
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U61^12
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U61^12
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U61^12
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > U81 > mark1 > U61^12
length > 0 > U81 > mark1 > cons
length > 0 > U81 > mark1 > nil
length > U71 > U72 > s > mark1 > U61^12
length > U71 > U72 > s > mark1 > cons
length > U71 > U72 > s > mark1 > nil
length > U71 > isNat > U11 > tt > s > mark1 > U61^12
length > U71 > isNat > U11 > tt > s > mark1 > cons
length > U71 > isNat > U11 > tt > s > mark1 > nil
length > U71 > isNat > U11 > tt > U93 > mark1 > U61^12
length > U71 > isNat > U11 > tt > U93 > mark1 > cons
length > U71 > isNat > U11 > tt > U93 > mark1 > nil
length > U71 > isNat > U21 > tt > s > mark1 > U61^12
length > U71 > isNat > U21 > tt > s > mark1 > cons
length > U71 > isNat > U21 > tt > s > mark1 > nil
length > U71 > isNat > U21 > tt > U93 > mark1 > U61^12
length > U71 > isNat > U21 > tt > U93 > mark1 > cons
length > U71 > isNat > U21 > tt > U93 > mark1 > nil
take > isNatIList > U31 > tt > s > mark1 > U61^12
take > isNatIList > U31 > tt > s > mark1 > cons
take > isNatIList > U31 > tt > s > mark1 > nil
take > isNatIList > U31 > tt > U93 > mark1 > U61^12
take > isNatIList > U31 > tt > U93 > mark1 > cons
take > isNatIList > U31 > tt > U93 > mark1 > nil
take > isNatIList > U41 > U42 > tt > s > mark1 > U61^12
take > isNatIList > U41 > U42 > tt > s > mark1 > cons
take > isNatIList > U41 > U42 > tt > s > mark1 > nil
take > isNatIList > U41 > U42 > tt > U93 > mark1 > U61^12
take > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
take > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U11 > tt > s > mark1 > U61^12
take > isNatIList > isNat > U11 > tt > s > mark1 > cons
take > isNatIList > isNat > U11 > tt > s > mark1 > nil
take > isNatIList > isNat > U11 > tt > U93 > mark1 > U61^12
take > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U21 > tt > s > mark1 > U61^12
take > isNatIList > isNat > U21 > tt > s > mark1 > cons
take > isNatIList > isNat > U21 > tt > s > mark1 > nil
take > isNatIList > isNat > U21 > tt > U93 > mark1 > U61^12
take > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
take > U61 > U62 > tt > s > mark1 > U61^12
take > U61 > U62 > tt > s > mark1 > cons
take > U61 > U62 > tt > s > mark1 > nil
take > U61 > U62 > tt > U93 > mark1 > U61^12
take > U61 > U62 > tt > U93 > mark1 > cons
take > U61 > U62 > tt > U93 > mark1 > nil
take > U81 > mark1 > U61^12
take > U81 > mark1 > cons
take > U81 > mark1 > nil
take > U91 > isNat > U11 > tt > s > mark1 > U61^12
take > U91 > isNat > U11 > tt > s > mark1 > cons
take > U91 > isNat > U11 > tt > s > mark1 > nil
take > U91 > isNat > U11 > tt > U93 > mark1 > U61^12
take > U91 > isNat > U11 > tt > U93 > mark1 > cons
take > U91 > isNat > U11 > tt > U93 > mark1 > nil
take > U91 > isNat > U21 > tt > s > mark1 > U61^12
take > U91 > isNat > U21 > tt > s > mark1 > cons
take > U91 > isNat > U21 > tt > s > mark1 > nil
take > U91 > isNat > U21 > tt > U93 > mark1 > U61^12
take > U91 > isNat > U21 > tt > U93 > mark1 > cons
take > U91 > isNat > U21 > tt > U93 > mark1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U611(X1, active(X2)) → U611(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U611(X1, active(X2)) → U611(X1, X2)
zeros > cons > U51 > U52 > [mark1, tt] > 0 > [U61^11, active1] > s
zeros > cons > U51 > U52 > [mark1, tt] > length1 > [U61^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > 0 > [U61^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > U62 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > U62 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > length1 > [U61^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > 0 > [U61^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > length1 > [U61^11, active1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
ISNATLIST(active(X)) → ISNATLIST(X)
ISNATLIST(mark(X)) → ISNATLIST(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISNATLIST(active(X)) → ISNATLIST(X)
ISNATLIST(mark(X)) → ISNATLIST(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U521(active(X)) → U521(X)
U521(mark(X)) → U521(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U521(active(X)) → U521(X)
U521(mark(X)) → U521(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U511(X1, mark(X2)) → U511(X1, X2)
U511(mark(X1), X2) → U511(X1, X2)
U511(active(X1), X2) → U511(X1, X2)
U511(X1, active(X2)) → U511(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U511(mark(X1), X2) → U511(X1, X2)
U511(active(X1), X2) → U511(X1, X2)
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U51^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > U51^11
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > 0
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U511(X1, mark(X2)) → U511(X1, X2)
U511(X1, active(X2)) → U511(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U511(X1, mark(X2)) → U511(X1, X2)
zeros > 0 > isNatIList > U31 > tt > s > mark1 > U51^12
zeros > 0 > isNatIList > U31 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > U51^12
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U51^12
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U51^12
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U51^12
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U51^12
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U51^12
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U51^12
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
zeros > 0 > U81 > mark1 > U51^12
zeros > 0 > U81 > mark1 > cons
zeros > 0 > U81 > mark1 > nil
[U51, isNatList1] > U52 > tt > s > mark1 > U51^12
[U51, isNatList1] > U52 > tt > s > mark1 > cons
[U51, isNatList1] > U52 > tt > s > mark1 > nil
[U51, isNatList1] > U52 > tt > U93 > mark1 > U51^12
[U51, isNatList1] > U52 > tt > U93 > mark1 > cons
[U51, isNatList1] > U52 > tt > U93 > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > U51^12
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > U51^12
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > U51^12
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > U51^12
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > U51^12
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > U51^12
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U31 > tt > s > mark1 > U51^12
length > 0 > isNatIList > U31 > tt > s > mark1 > cons
length > 0 > isNatIList > U31 > tt > s > mark1 > nil
length > 0 > isNatIList > U31 > tt > U93 > mark1 > U51^12
length > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U51^12
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U51^12
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U51^12
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U51^12
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U51^12
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U51^12
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > U81 > mark1 > U51^12
length > 0 > U81 > mark1 > cons
length > 0 > U81 > mark1 > nil
length > U71 > U72 > s > mark1 > U51^12
length > U71 > U72 > s > mark1 > cons
length > U71 > U72 > s > mark1 > nil
length > U71 > isNat > U11 > tt > s > mark1 > U51^12
length > U71 > isNat > U11 > tt > s > mark1 > cons
length > U71 > isNat > U11 > tt > s > mark1 > nil
length > U71 > isNat > U11 > tt > U93 > mark1 > U51^12
length > U71 > isNat > U11 > tt > U93 > mark1 > cons
length > U71 > isNat > U11 > tt > U93 > mark1 > nil
length > U71 > isNat > U21 > tt > s > mark1 > U51^12
length > U71 > isNat > U21 > tt > s > mark1 > cons
length > U71 > isNat > U21 > tt > s > mark1 > nil
length > U71 > isNat > U21 > tt > U93 > mark1 > U51^12
length > U71 > isNat > U21 > tt > U93 > mark1 > cons
length > U71 > isNat > U21 > tt > U93 > mark1 > nil
take > isNatIList > U31 > tt > s > mark1 > U51^12
take > isNatIList > U31 > tt > s > mark1 > cons
take > isNatIList > U31 > tt > s > mark1 > nil
take > isNatIList > U31 > tt > U93 > mark1 > U51^12
take > isNatIList > U31 > tt > U93 > mark1 > cons
take > isNatIList > U31 > tt > U93 > mark1 > nil
take > isNatIList > U41 > U42 > tt > s > mark1 > U51^12
take > isNatIList > U41 > U42 > tt > s > mark1 > cons
take > isNatIList > U41 > U42 > tt > s > mark1 > nil
take > isNatIList > U41 > U42 > tt > U93 > mark1 > U51^12
take > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
take > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U11 > tt > s > mark1 > U51^12
take > isNatIList > isNat > U11 > tt > s > mark1 > cons
take > isNatIList > isNat > U11 > tt > s > mark1 > nil
take > isNatIList > isNat > U11 > tt > U93 > mark1 > U51^12
take > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U21 > tt > s > mark1 > U51^12
take > isNatIList > isNat > U21 > tt > s > mark1 > cons
take > isNatIList > isNat > U21 > tt > s > mark1 > nil
take > isNatIList > isNat > U21 > tt > U93 > mark1 > U51^12
take > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
take > U61 > U62 > tt > s > mark1 > U51^12
take > U61 > U62 > tt > s > mark1 > cons
take > U61 > U62 > tt > s > mark1 > nil
take > U61 > U62 > tt > U93 > mark1 > U51^12
take > U61 > U62 > tt > U93 > mark1 > cons
take > U61 > U62 > tt > U93 > mark1 > nil
take > U81 > mark1 > U51^12
take > U81 > mark1 > cons
take > U81 > mark1 > nil
take > U91 > isNat > U11 > tt > s > mark1 > U51^12
take > U91 > isNat > U11 > tt > s > mark1 > cons
take > U91 > isNat > U11 > tt > s > mark1 > nil
take > U91 > isNat > U11 > tt > U93 > mark1 > U51^12
take > U91 > isNat > U11 > tt > U93 > mark1 > cons
take > U91 > isNat > U11 > tt > U93 > mark1 > nil
take > U91 > isNat > U21 > tt > s > mark1 > U51^12
take > U91 > isNat > U21 > tt > s > mark1 > cons
take > U91 > isNat > U21 > tt > s > mark1 > nil
take > U91 > isNat > U21 > tt > U93 > mark1 > U51^12
take > U91 > isNat > U21 > tt > U93 > mark1 > cons
take > U91 > isNat > U21 > tt > U93 > mark1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U511(X1, active(X2)) → U511(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U511(X1, active(X2)) → U511(X1, X2)
zeros > cons > U51 > U52 > [mark1, tt] > 0 > [U51^11, active1] > s
zeros > cons > U51 > U52 > [mark1, tt] > length1 > [U51^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > 0 > [U51^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > U62 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > U62 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > length1 > [U51^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > 0 > [U51^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > length1 > [U51^11, active1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
ISNATILIST(active(X)) → ISNATILIST(X)
ISNATILIST(mark(X)) → ISNATILIST(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISNATILIST(active(X)) → ISNATILIST(X)
ISNATILIST(mark(X)) → ISNATILIST(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U421(active(X)) → U421(X)
U421(mark(X)) → U421(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U421(active(X)) → U421(X)
U421(mark(X)) → U421(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U411(X1, mark(X2)) → U411(X1, X2)
U411(mark(X1), X2) → U411(X1, X2)
U411(active(X1), X2) → U411(X1, X2)
U411(X1, active(X2)) → U411(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U411(mark(X1), X2) → U411(X1, X2)
U411(active(X1), X2) → U411(X1, X2)
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > U41^11
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > U41^11
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > 0
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U411(X1, mark(X2)) → U411(X1, X2)
U411(X1, active(X2)) → U411(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U411(X1, mark(X2)) → U411(X1, X2)
zeros > 0 > isNatIList > U31 > tt > s > mark1 > U41^12
zeros > 0 > isNatIList > U31 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > U41^12
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U41^12
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U41^12
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U41^12
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U41^12
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U41^12
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U41^12
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
zeros > 0 > U81 > mark1 > U41^12
zeros > 0 > U81 > mark1 > cons
zeros > 0 > U81 > mark1 > nil
[U51, isNatList1] > U52 > tt > s > mark1 > U41^12
[U51, isNatList1] > U52 > tt > s > mark1 > cons
[U51, isNatList1] > U52 > tt > s > mark1 > nil
[U51, isNatList1] > U52 > tt > U93 > mark1 > U41^12
[U51, isNatList1] > U52 > tt > U93 > mark1 > cons
[U51, isNatList1] > U52 > tt > U93 > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > U41^12
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > U41^12
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > U41^12
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > U41^12
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > U41^12
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > U41^12
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U31 > tt > s > mark1 > U41^12
length > 0 > isNatIList > U31 > tt > s > mark1 > cons
length > 0 > isNatIList > U31 > tt > s > mark1 > nil
length > 0 > isNatIList > U31 > tt > U93 > mark1 > U41^12
length > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > U41^12
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > U41^12
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > U41^12
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > U41^12
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > U41^12
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > U41^12
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > U81 > mark1 > U41^12
length > 0 > U81 > mark1 > cons
length > 0 > U81 > mark1 > nil
length > U71 > U72 > s > mark1 > U41^12
length > U71 > U72 > s > mark1 > cons
length > U71 > U72 > s > mark1 > nil
length > U71 > isNat > U11 > tt > s > mark1 > U41^12
length > U71 > isNat > U11 > tt > s > mark1 > cons
length > U71 > isNat > U11 > tt > s > mark1 > nil
length > U71 > isNat > U11 > tt > U93 > mark1 > U41^12
length > U71 > isNat > U11 > tt > U93 > mark1 > cons
length > U71 > isNat > U11 > tt > U93 > mark1 > nil
length > U71 > isNat > U21 > tt > s > mark1 > U41^12
length > U71 > isNat > U21 > tt > s > mark1 > cons
length > U71 > isNat > U21 > tt > s > mark1 > nil
length > U71 > isNat > U21 > tt > U93 > mark1 > U41^12
length > U71 > isNat > U21 > tt > U93 > mark1 > cons
length > U71 > isNat > U21 > tt > U93 > mark1 > nil
take > isNatIList > U31 > tt > s > mark1 > U41^12
take > isNatIList > U31 > tt > s > mark1 > cons
take > isNatIList > U31 > tt > s > mark1 > nil
take > isNatIList > U31 > tt > U93 > mark1 > U41^12
take > isNatIList > U31 > tt > U93 > mark1 > cons
take > isNatIList > U31 > tt > U93 > mark1 > nil
take > isNatIList > U41 > U42 > tt > s > mark1 > U41^12
take > isNatIList > U41 > U42 > tt > s > mark1 > cons
take > isNatIList > U41 > U42 > tt > s > mark1 > nil
take > isNatIList > U41 > U42 > tt > U93 > mark1 > U41^12
take > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
take > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U11 > tt > s > mark1 > U41^12
take > isNatIList > isNat > U11 > tt > s > mark1 > cons
take > isNatIList > isNat > U11 > tt > s > mark1 > nil
take > isNatIList > isNat > U11 > tt > U93 > mark1 > U41^12
take > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U21 > tt > s > mark1 > U41^12
take > isNatIList > isNat > U21 > tt > s > mark1 > cons
take > isNatIList > isNat > U21 > tt > s > mark1 > nil
take > isNatIList > isNat > U21 > tt > U93 > mark1 > U41^12
take > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
take > U61 > U62 > tt > s > mark1 > U41^12
take > U61 > U62 > tt > s > mark1 > cons
take > U61 > U62 > tt > s > mark1 > nil
take > U61 > U62 > tt > U93 > mark1 > U41^12
take > U61 > U62 > tt > U93 > mark1 > cons
take > U61 > U62 > tt > U93 > mark1 > nil
take > U81 > mark1 > U41^12
take > U81 > mark1 > cons
take > U81 > mark1 > nil
take > U91 > isNat > U11 > tt > s > mark1 > U41^12
take > U91 > isNat > U11 > tt > s > mark1 > cons
take > U91 > isNat > U11 > tt > s > mark1 > nil
take > U91 > isNat > U11 > tt > U93 > mark1 > U41^12
take > U91 > isNat > U11 > tt > U93 > mark1 > cons
take > U91 > isNat > U11 > tt > U93 > mark1 > nil
take > U91 > isNat > U21 > tt > s > mark1 > U41^12
take > U91 > isNat > U21 > tt > s > mark1 > cons
take > U91 > isNat > U21 > tt > s > mark1 > nil
take > U91 > isNat > U21 > tt > U93 > mark1 > U41^12
take > U91 > isNat > U21 > tt > U93 > mark1 > cons
take > U91 > isNat > U21 > tt > U93 > mark1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U411(X1, active(X2)) → U411(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U411(X1, active(X2)) → U411(X1, X2)
zeros > cons > U51 > U52 > [mark1, tt] > 0 > [U41^11, active1] > s
zeros > cons > U51 > U52 > [mark1, tt] > length1 > [U41^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > 0 > [U41^11, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > U62 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > U62 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > length1 > [U41^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > 0 > [U41^11, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > length1 > [U41^11, active1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U311(active(X)) → U311(X)
U311(mark(X)) → U311(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U311(active(X)) → U311(X)
U311(mark(X)) → U311(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U211(active(X)) → U211(X)
U211(mark(X)) → U211(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U211(active(X)) → U211(X)
U211(mark(X)) → U211(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
U111(active(X)) → U111(X)
U111(mark(X)) → U111(X)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U111(active(X)) → U111(X)
U111(mark(X)) → U111(X)
[0, U71, length] > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[0, U71, length] > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > U31 > [active1, mark1] > U72 > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U61 > [U11, tt, U21, U62, isNat] > [zeros, cons, U81, nil, U91, U92, U93, take] > s
[U41, U42, isNatIList] > isNatList > U51 > U52 > [active1, mark1] > U72 > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
zeros > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
zeros > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
zeros > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
[isNatIList, U91, take] > U31 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
[isNatIList, U91, take] > U61 > U62 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U42 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > U51 > U52 > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > CONS1
[isNatIList, U91, take] > [isNat, U92] > U93 > [cons, U41] > [U71, U72, length] > s > [U11, tt, U21, isNatList1] > nil > [mark1, active1] > 0
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > CONS1
[isNatIList, U91, take] > U81 > nil > [mark1, active1] > 0
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(X1, mark(X2)) → CONS(X1, X2)
zeros > 0 > isNatIList > U31 > tt > s > mark1 > CONS2
zeros > 0 > isNatIList > U31 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > CONS2
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > CONS2
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > CONS2
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > CONS2
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > CONS2
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > CONS2
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > CONS2
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
zeros > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
zeros > 0 > U81 > mark1 > CONS2
zeros > 0 > U81 > mark1 > cons
zeros > 0 > U81 > mark1 > nil
[U51, isNatList1] > U52 > tt > s > mark1 > CONS2
[U51, isNatList1] > U52 > tt > s > mark1 > cons
[U51, isNatList1] > U52 > tt > s > mark1 > nil
[U51, isNatList1] > U52 > tt > U93 > mark1 > CONS2
[U51, isNatList1] > U52 > tt > U93 > mark1 > cons
[U51, isNatList1] > U52 > tt > U93 > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > CONS2
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > s > mark1 > nil
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > CONS2
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > cons
[U51, isNatList1] > U61 > U62 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > CONS2
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > CONS2
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U11 > tt > U93 > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > CONS2
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > s > mark1 > nil
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > CONS2
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > cons
[U51, isNatList1] > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U31 > tt > s > mark1 > CONS2
length > 0 > isNatIList > U31 > tt > s > mark1 > cons
length > 0 > isNatIList > U31 > tt > s > mark1 > nil
length > 0 > isNatIList > U31 > tt > U93 > mark1 > CONS2
length > 0 > isNatIList > U31 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U31 > tt > U93 > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > CONS2
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > s > mark1 > nil
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > CONS2
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
length > 0 > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > CONS2
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > CONS2
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > CONS2
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > s > mark1 > nil
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > CONS2
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
length > 0 > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
length > 0 > U81 > mark1 > CONS2
length > 0 > U81 > mark1 > cons
length > 0 > U81 > mark1 > nil
length > U71 > U72 > s > mark1 > CONS2
length > U71 > U72 > s > mark1 > cons
length > U71 > U72 > s > mark1 > nil
length > U71 > isNat > U11 > tt > s > mark1 > CONS2
length > U71 > isNat > U11 > tt > s > mark1 > cons
length > U71 > isNat > U11 > tt > s > mark1 > nil
length > U71 > isNat > U11 > tt > U93 > mark1 > CONS2
length > U71 > isNat > U11 > tt > U93 > mark1 > cons
length > U71 > isNat > U11 > tt > U93 > mark1 > nil
length > U71 > isNat > U21 > tt > s > mark1 > CONS2
length > U71 > isNat > U21 > tt > s > mark1 > cons
length > U71 > isNat > U21 > tt > s > mark1 > nil
length > U71 > isNat > U21 > tt > U93 > mark1 > CONS2
length > U71 > isNat > U21 > tt > U93 > mark1 > cons
length > U71 > isNat > U21 > tt > U93 > mark1 > nil
take > isNatIList > U31 > tt > s > mark1 > CONS2
take > isNatIList > U31 > tt > s > mark1 > cons
take > isNatIList > U31 > tt > s > mark1 > nil
take > isNatIList > U31 > tt > U93 > mark1 > CONS2
take > isNatIList > U31 > tt > U93 > mark1 > cons
take > isNatIList > U31 > tt > U93 > mark1 > nil
take > isNatIList > U41 > U42 > tt > s > mark1 > CONS2
take > isNatIList > U41 > U42 > tt > s > mark1 > cons
take > isNatIList > U41 > U42 > tt > s > mark1 > nil
take > isNatIList > U41 > U42 > tt > U93 > mark1 > CONS2
take > isNatIList > U41 > U42 > tt > U93 > mark1 > cons
take > isNatIList > U41 > U42 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U11 > tt > s > mark1 > CONS2
take > isNatIList > isNat > U11 > tt > s > mark1 > cons
take > isNatIList > isNat > U11 > tt > s > mark1 > nil
take > isNatIList > isNat > U11 > tt > U93 > mark1 > CONS2
take > isNatIList > isNat > U11 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U11 > tt > U93 > mark1 > nil
take > isNatIList > isNat > U21 > tt > s > mark1 > CONS2
take > isNatIList > isNat > U21 > tt > s > mark1 > cons
take > isNatIList > isNat > U21 > tt > s > mark1 > nil
take > isNatIList > isNat > U21 > tt > U93 > mark1 > CONS2
take > isNatIList > isNat > U21 > tt > U93 > mark1 > cons
take > isNatIList > isNat > U21 > tt > U93 > mark1 > nil
take > U61 > U62 > tt > s > mark1 > CONS2
take > U61 > U62 > tt > s > mark1 > cons
take > U61 > U62 > tt > s > mark1 > nil
take > U61 > U62 > tt > U93 > mark1 > CONS2
take > U61 > U62 > tt > U93 > mark1 > cons
take > U61 > U62 > tt > U93 > mark1 > nil
take > U81 > mark1 > CONS2
take > U81 > mark1 > cons
take > U81 > mark1 > nil
take > U91 > isNat > U11 > tt > s > mark1 > CONS2
take > U91 > isNat > U11 > tt > s > mark1 > cons
take > U91 > isNat > U11 > tt > s > mark1 > nil
take > U91 > isNat > U11 > tt > U93 > mark1 > CONS2
take > U91 > isNat > U11 > tt > U93 > mark1 > cons
take > U91 > isNat > U11 > tt > U93 > mark1 > nil
take > U91 > isNat > U21 > tt > s > mark1 > CONS2
take > U91 > isNat > U21 > tt > s > mark1 > cons
take > U91 > isNat > U21 > tt > s > mark1 > nil
take > U91 > isNat > U21 > tt > U93 > mark1 > CONS2
take > U91 > isNat > U21 > tt > U93 > mark1 > cons
take > U91 > isNat > U21 > tt > U93 > mark1 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(X1, active(X2)) → CONS(X1, X2)
zeros > cons > U51 > U52 > [mark1, tt] > 0 > [CONS1, active1] > s
zeros > cons > U51 > U52 > [mark1, tt] > length1 > [CONS1, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > 0 > [CONS1, active1] > s
zeros > cons > U71 > U72 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > isNatIList > U31 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > isNatIList > U41 > U42 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > isNatIList > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > U62 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > U62 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > isNat > U11 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > isNat > U21 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > isNat > isNatList1 > U51 > U52 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > U81 > nil > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U51 > U52 > [mark1, tt] > length1 > [CONS1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > 0 > [CONS1, active1] > s
[U61, take] > U91 > U92 > U93 > cons > U71 > U72 > [mark1, tt] > length1 > [CONS1, active1] > s
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(U11(X)) → ACTIVE(U11(mark(X)))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
MARK(U11(X)) → MARK(X)
MARK(U21(X)) → ACTIVE(U21(mark(X)))
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
MARK(U21(X)) → MARK(X)
MARK(U31(X)) → ACTIVE(U31(mark(X)))
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
MARK(U41(X1, X2)) → MARK(X1)
MARK(U42(X)) → ACTIVE(U42(mark(X)))
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U51(X1, X2)) → MARK(X1)
MARK(U52(X)) → ACTIVE(U52(mark(X)))
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
MARK(U61(X1, X2)) → MARK(X1)
MARK(U62(X)) → ACTIVE(U62(mark(X)))
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → ACTIVE(U81(mark(X)))
MARK(U81(X)) → MARK(X)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U11(X)) → ACTIVE(U11(mark(X)))
MARK(U31(X)) → ACTIVE(U31(mark(X)))
MARK(U42(X)) → ACTIVE(U42(mark(X)))
[MARK, cons, U41, isNatIList, zeros, 0, U51, U52, isNatList, U21, U61, U62, U71, U72, isNat, s, length, U91, U92, U93, take, U81, nil] > [tt, U42, U11, U31]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
MARK(U11(X)) → MARK(X)
MARK(U21(X)) → ACTIVE(U21(mark(X)))
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
MARK(U21(X)) → MARK(X)
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
MARK(U41(X1, X2)) → MARK(X1)
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U51(X1, X2)) → MARK(X1)
MARK(U52(X)) → ACTIVE(U52(mark(X)))
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
MARK(U61(X1, X2)) → MARK(X1)
MARK(U62(X)) → ACTIVE(U62(mark(X)))
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → ACTIVE(U81(mark(X)))
MARK(U81(X)) → MARK(X)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U52(X)) → ACTIVE(U52(mark(X)))
[MARK, cons, U41, isNatIList, zeros, U51, isNatList, U21, U61, U62, U71, U72, isNat, U31, s, length, U91, U92, U93, take, U81] > U52 > [tt, U42, 0] > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
MARK(U11(X)) → MARK(X)
MARK(U21(X)) → ACTIVE(U21(mark(X)))
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
MARK(U21(X)) → MARK(X)
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
MARK(U41(X1, X2)) → MARK(X1)
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U51(X1, X2)) → MARK(X1)
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
MARK(U61(X1, X2)) → MARK(X1)
MARK(U62(X)) → ACTIVE(U62(mark(X)))
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → ACTIVE(U81(mark(X)))
MARK(U81(X)) → MARK(X)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U81(X)) → ACTIVE(U81(mark(X)))
[MARK, cons, U41, U42, isNatIList, zeros, U51, isNatList, U21, U61, U62, U71, U72, isNat, U31, s, length, U91, U92, U93, take] > 0
[MARK, cons, U41, U42, isNatIList, zeros, U51, isNatList, U21, U61, U62, U71, U72, isNat, U31, s, length, U91, U92, U93, take] > U11 > tt > nil
[MARK, cons, U41, U42, isNatIList, zeros, U51, isNatList, U21, U61, U62, U71, U72, isNat, U31, s, length, U91, U92, U93, take] > U81 > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
MARK(U11(X)) → MARK(X)
MARK(U21(X)) → ACTIVE(U21(mark(X)))
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
MARK(U21(X)) → MARK(X)
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
MARK(U41(X1, X2)) → MARK(X1)
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U51(X1, X2)) → MARK(X1)
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
MARK(U61(X1, X2)) → MARK(X1)
MARK(U62(X)) → ACTIVE(U62(mark(X)))
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → MARK(X)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U62(X)) → ACTIVE(U62(mark(X)))
[MARK, cons, U41, isNatIList, zeros, U51, isNatList, U21, U61, U71, U72, isNat, s, length, U91, U92, U93, take] > 0 > U81 > nil > [tt, U42, U11, U62]
[MARK, cons, U41, isNatIList, zeros, U51, isNatList, U21, U61, U71, U72, isNat, s, length, U91, U92, U93, take] > U52 > [tt, U42, U11, U62]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
MARK(U11(X)) → MARK(X)
MARK(U21(X)) → ACTIVE(U21(mark(X)))
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
MARK(U21(X)) → MARK(X)
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
MARK(U41(X1, X2)) → MARK(X1)
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U51(X1, X2)) → MARK(X1)
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
MARK(U61(X1, X2)) → MARK(X1)
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → MARK(X)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
[MARK, U41, tt, U42, isNatIList, zeros, U51, isNatList, U21, U61, U71, U72, isNat, s, length, U91, U92, U93, take] > cons
[MARK, U41, tt, U42, isNatIList, zeros, U51, isNatList, U21, U61, U71, U72, isNat, s, length, U91, U92, U93, take] > 0
[MARK, U41, tt, U42, isNatIList, zeros, U51, isNatList, U21, U61, U71, U72, isNat, s, length, U91, U92, U93, take] > nil
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
MARK(U11(X)) → MARK(X)
MARK(U21(X)) → ACTIVE(U21(mark(X)))
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
MARK(U21(X)) → MARK(X)
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
MARK(U41(X1, X2)) → MARK(X1)
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U51(X1, X2)) → MARK(X1)
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
MARK(U61(X1, X2)) → MARK(X1)
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → MARK(X)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U21(X)) → ACTIVE(U21(mark(X)))
MARK(s(X)) → ACTIVE(s(mark(X)))
[U41, MARK, isNatIList, zeros, U51, U52, isNatList, U11, U61, U71, U72, isNat, U31, length, U91, U92, U93, take] > [tt, U21, s] > [0, U81, nil]
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
ACTIVE(U41(tt, V2)) → MARK(U42(isNatIList(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatList(V2)))
MARK(U11(X)) → MARK(X)
ACTIVE(U61(tt, V2)) → MARK(U62(isNatIList(V2)))
MARK(U21(X)) → MARK(X)
ACTIVE(U71(tt, L, N)) → MARK(U72(isNat(N), L))
MARK(U31(X)) → MARK(X)
MARK(U41(X1, X2)) → ACTIVE(U41(mark(X1), X2))
ACTIVE(U72(tt, L)) → MARK(s(length(L)))
MARK(U41(X1, X2)) → MARK(X1)
ACTIVE(U91(tt, IL, M, N)) → MARK(U92(isNat(M), IL, M, N))
MARK(U42(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U92(tt, IL, M, N)) → MARK(U93(isNat(N), IL, M, N))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(U93(tt, IL, M, N)) → MARK(cons(N, take(M, IL)))
MARK(U51(X1, X2)) → MARK(X1)
ACTIVE(isNat(length(V1))) → MARK(U11(isNatList(V1)))
MARK(U52(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(isNat(s(V1))) → MARK(U21(isNat(V1)))
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isNatIList(V)) → MARK(U31(isNatList(V)))
MARK(U61(X1, X2)) → MARK(X1)
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNat(V1), V2))
MARK(U62(X)) → MARK(X)
MARK(U71(X1, X2, X3)) → ACTIVE(U71(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U51(isNat(V1), V2))
MARK(U71(X1, X2, X3)) → MARK(X1)
MARK(U72(X1, X2)) → ACTIVE(U72(mark(X1), X2))
ACTIVE(isNatList(take(V1, V2))) → MARK(U61(isNat(V1), V2))
MARK(U72(X1, X2)) → MARK(X1)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(length(cons(N, L))) → MARK(U71(isNatList(L), L, N))
ACTIVE(take(0, IL)) → MARK(U81(isNatIList(IL)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
ACTIVE(take(s(M), cons(N, IL))) → MARK(U91(isNatIList(IL), IL, M, N))
MARK(length(X)) → MARK(X)
MARK(U81(X)) → MARK(X)
MARK(U91(X1, X2, X3, X4)) → ACTIVE(U91(mark(X1), X2, X3, X4))
MARK(U91(X1, X2, X3, X4)) → MARK(X1)
MARK(U92(X1, X2, X3, X4)) → ACTIVE(U92(mark(X1), X2, X3, X4))
MARK(U92(X1, X2, X3, X4)) → MARK(X1)
MARK(U93(X1, X2, X3, X4)) → ACTIVE(U93(mark(X1), X2, X3, X4))
MARK(U93(X1, X2, X3, X4)) → MARK(X1)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
U62(mark(X)) → U62(X)
U62(active(X)) → U62(X)
U71(mark(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, mark(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, mark(X3)) → U71(X1, X2, X3)
U71(active(X1), X2, X3) → U71(X1, X2, X3)
U71(X1, active(X2), X3) → U71(X1, X2, X3)
U71(X1, X2, active(X3)) → U71(X1, X2, X3)
U72(mark(X1), X2) → U72(X1, X2)
U72(X1, mark(X2)) → U72(X1, X2)
U72(active(X1), X2) → U72(X1, X2)
U72(X1, active(X2)) → U72(X1, X2)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
U91(mark(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, mark(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, mark(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, mark(X4)) → U91(X1, X2, X3, X4)
U91(active(X1), X2, X3, X4) → U91(X1, X2, X3, X4)
U91(X1, active(X2), X3, X4) → U91(X1, X2, X3, X4)
U91(X1, X2, active(X3), X4) → U91(X1, X2, X3, X4)
U91(X1, X2, X3, active(X4)) → U91(X1, X2, X3, X4)
U92(mark(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, mark(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, mark(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, mark(X4)) → U92(X1, X2, X3, X4)
U92(active(X1), X2, X3, X4) → U92(X1, X2, X3, X4)
U92(X1, active(X2), X3, X4) → U92(X1, X2, X3, X4)
U92(X1, X2, active(X3), X4) → U92(X1, X2, X3, X4)
U92(X1, X2, X3, active(X4)) → U92(X1, X2, X3, X4)
U93(mark(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, mark(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, mark(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, mark(X4)) → U93(X1, X2, X3, X4)
U93(active(X1), X2, X3, X4) → U93(X1, X2, X3, X4)
U93(X1, active(X2), X3, X4) → U93(X1, X2, X3, X4)
U93(X1, X2, active(X3), X4) → U93(X1, X2, X3, X4)
U93(X1, X2, X3, active(X4)) → U93(X1, X2, X3, X4)
take(mark(X1), X2) → take(X1, X2)
take(X1, mark(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)