0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 QDPOrderProof (⇔)
↳16 QDP
↳17 PisEmptyProof (⇔)
↳18 TRUE
↳19 QDP
↳20 QDPOrderProof (⇔)
↳21 QDP
↳22 QDPOrderProof (⇔)
↳23 QDP
↳24 PisEmptyProof (⇔)
↳25 TRUE
↳26 QDP
↳27 QDPOrderProof (⇔)
↳28 QDP
↳29 QDPOrderProof (⇔)
↳30 QDP
↳31 PisEmptyProof (⇔)
↳32 TRUE
↳33 QDP
↳34 QDPOrderProof (⇔)
↳35 QDP
↳36 QDPOrderProof (⇔)
↳37 QDP
↳38 PisEmptyProof (⇔)
↳39 TRUE
↳40 QDP
↳41 QDPOrderProof (⇔)
↳42 QDP
↳43 QDPOrderProof (⇔)
↳44 QDP
↳45 PisEmptyProof (⇔)
↳46 TRUE
↳47 QDP
↳48 QDPOrderProof (⇔)
↳49 QDP
↳50 QDPOrderProof (⇔)
↳51 QDP
↳52 PisEmptyProof (⇔)
↳53 TRUE
↳54 QDP
↳55 QDPOrderProof (⇔)
↳56 QDP
↳57 QDPOrderProof (⇔)
↳58 QDP
↳59 PisEmptyProof (⇔)
↳60 TRUE
↳61 QDP
↳62 QDPOrderProof (⇔)
↳63 QDP
↳64 QDPOrderProof (⇔)
↳65 QDP
↳66 PisEmptyProof (⇔)
↳67 TRUE
↳68 QDP
↳69 QDPOrderProof (⇔)
↳70 QDP
↳71 QDPOrderProof (⇔)
↳72 QDP
↳73 PisEmptyProof (⇔)
↳74 TRUE
↳75 QDP
↳76 QDPOrderProof (⇔)
↳77 QDP
↳78 QDPOrderProof (⇔)
↳79 QDP
↳80 PisEmptyProof (⇔)
↳81 TRUE
↳82 QDP
↳83 QDPOrderProof (⇔)
↳84 QDP
↳85 QDPOrderProof (⇔)
↳86 QDP
↳87 PisEmptyProof (⇔)
↳88 TRUE
↳89 QDP
↳90 QDPOrderProof (⇔)
↳91 QDP
↳92 QDPOrderProof (⇔)
↳93 QDP
↳94 PisEmptyProof (⇔)
↳95 TRUE
↳96 QDP
↳97 QDPOrderProof (⇔)
↳98 QDP
↳99 QDPOrderProof (⇔)
↳100 QDP
↳101 PisEmptyProof (⇔)
↳102 TRUE
↳103 QDP
↳104 QDPOrderProof (⇔)
↳105 QDP
↳106 QDPOrderProof (⇔)
↳107 QDP
↳108 PisEmptyProof (⇔)
↳109 TRUE
↳110 QDP
↳111 QDPOrderProof (⇔)
↳112 QDP
↳113 QDPOrderProof (⇔)
↳114 QDP
↳115 PisEmptyProof (⇔)
↳116 TRUE
↳117 QDP
↳118 QDPOrderProof (⇔)
↳119 QDP
↳120 QDPOrderProof (⇔)
↳121 QDP
↳122 PisEmptyProof (⇔)
↳123 TRUE
↳124 QDP
↳125 QDPOrderProof (⇔)
↳126 QDP
↳127 QDPOrderProof (⇔)
↳128 QDP
↳129 PisEmptyProof (⇔)
↳130 TRUE
↳131 QDP
↳132 QDPOrderProof (⇔)
↳133 QDP
↳134 QDPOrderProof (⇔)
↳135 QDP
↳136 QDPOrderProof (⇔)
↳137 QDP
↳138 QDPOrderProof (⇔)
↳139 QDP
↳140 PisEmptyProof (⇔)
↳141 TRUE
↳142 QDP
↳143 QDPOrderProof (⇔)
↳144 QDP
↳145 QDPOrderProof (⇔)
↳146 QDP
↳147 PisEmptyProof (⇔)
↳148 TRUE
↳149 QDP
↳150 QDPOrderProof (⇔)
↳151 QDP
↳152 QDPOrderProof (⇔)
↳153 QDP
↳154 PisEmptyProof (⇔)
↳155 TRUE
↳156 QDP
↳157 QDPOrderProof (⇔)
↳158 QDP
↳159 QDPOrderProof (⇔)
↳160 QDP
↳161 QDPOrderProof (⇔)
↳162 QDP
↳163 QDPOrderProof (⇔)
↳164 QDP
↳165 PisEmptyProof (⇔)
↳166 TRUE
↳167 QDP
↳168 QDPOrderProof (⇔)
↳169 QDP
↳170 QDPOrderProof (⇔)
↳171 QDP
↳172 PisEmptyProof (⇔)
↳173 TRUE
↳174 QDP
↳175 QDPOrderProof (⇔)
↳176 QDP
↳177 QDPOrderProof (⇔)
↳178 QDP
↳179 PisEmptyProof (⇔)
↳180 TRUE
↳181 QDP
↳182 QDPOrderProof (⇔)
↳183 QDP
↳184 QDPOrderProof (⇔)
↳185 QDP
↳186 QDPOrderProof (⇔)
↳187 QDP
↳188 QDPOrderProof (⇔)
↳189 QDP
↳190 PisEmptyProof (⇔)
↳191 TRUE
↳192 QDP
↳193 QDPOrderProof (⇔)
↳194 QDP
↳195 QDPOrderProof (⇔)
↳196 QDP
↳197 PisEmptyProof (⇔)
↳198 TRUE
↳199 QDP
↳200 QDPOrderProof (⇔)
↳201 QDP
↳202 QDPOrderProof (⇔)
↳203 QDP
↳204 PisEmptyProof (⇔)
↳205 TRUE
↳206 QDP
↳207 QDPOrderProof (⇔)
↳208 QDP
↳209 QDPOrderProof (⇔)
↳210 QDP
↳211 PisEmptyProof (⇔)
↳212 TRUE
↳213 QDP
↳214 QDPOrderProof (⇔)
↳215 QDP
↳216 QDPOrderProof (⇔)
↳217 QDP
↳218 QDPOrderProof (⇔)
↳219 QDP
↳220 QDPOrderProof (⇔)
↳221 QDP
↳222 QDPOrderProof (⇔)
↳223 QDP
↳224 QDPOrderProof (⇔)
↳225 QDP
↳226 PisEmptyProof (⇔)
↳227 TRUE
↳228 QDP
↳229 QDPOrderProof (⇔)
↳230 QDP
↳231 QDPOrderProof (⇔)
↳232 QDP
↳233 PisEmptyProof (⇔)
↳234 TRUE
↳235 QDP
↳236 QDPOrderProof (⇔)
↳237 QDP
↳238 QDPOrderProof (⇔)
↳239 QDP
↳240 PisEmptyProof (⇔)
↳241 TRUE
↳242 QDP
↳243 QDPOrderProof (⇔)
↳244 QDP
↳245 QDPOrderProof (⇔)
↳246 QDP
↳247 PisEmptyProof (⇔)
↳248 TRUE
↳249 QDP
↳250 QDPOrderProof (⇔)
↳251 QDP
↳252 QDPOrderProof (⇔)
↳253 QDP
↳254 PisEmptyProof (⇔)
↳255 TRUE
↳256 QDP
↳257 QDPOrderProof (⇔)
↳258 QDP
↳259 QDPOrderProof (⇔)
↳260 QDP
↳261 PisEmptyProof (⇔)
↳262 TRUE
↳263 QDP
↳264 QDPOrderProof (⇔)
↳265 QDP
↳266 QDPOrderProof (⇔)
↳267 QDP
↳268 QDPOrderProof (⇔)
↳269 QDP
↳270 QDPOrderProof (⇔)
↳271 QDP
↳272 PisEmptyProof (⇔)
↳273 TRUE
↳274 QDP
↳275 QDPOrderProof (⇔)
↳276 QDP
↳277 QDPOrderProof (⇔)
↳278 QDP
↳279 PisEmptyProof (⇔)
↳280 TRUE
↳281 QDP
↳282 QDPOrderProof (⇔)
↳283 QDP
↳284 QDPOrderProof (⇔)
↳285 QDP
↳286 PisEmptyProof (⇔)
↳287 TRUE
↳288 QDP
↳289 QDPOrderProof (⇔)
↳290 QDP
↳291 QDPOrderProof (⇔)
↳292 QDP
↳293 PisEmptyProof (⇔)
↳294 TRUE
↳295 QDP
↳296 QDPOrderProof (⇔)
↳297 QDP
↳298 QDPOrderProof (⇔)
↳299 QDP
↳300 PisEmptyProof (⇔)
↳301 TRUE
↳302 QDP
↳303 QDPOrderProof (⇔)
↳304 QDP
↳305 QDPOrderProof (⇔)
↳306 QDP
↳307 PisEmptyProof (⇔)
↳308 TRUE
↳309 QDP
↳310 QDPOrderProof (⇔)
↳311 QDP
↳312 QDPOrderProof (⇔)
↳313 QDP
↳314 PisEmptyProof (⇔)
↳315 TRUE
↳316 QDP
↳317 QDPOrderProof (⇔)
↳318 QDP
↳319 QDPOrderProof (⇔)
↳320 QDP
↳321 QDPOrderProof (⇔)
↳322 QDP
↳323 QDPOrderProof (⇔)
↳324 QDP
↳325 PisEmptyProof (⇔)
↳326 TRUE
↳327 QDP
↳328 QDPOrderProof (⇔)
↳329 QDP
↳330 QDPOrderProof (⇔)
↳331 QDP
↳332 PisEmptyProof (⇔)
↳333 TRUE
↳334 QDP
↳335 QDPOrderProof (⇔)
↳336 QDP
↳337 QDPOrderProof (⇔)
↳338 QDP
↳339 PisEmptyProof (⇔)
↳340 TRUE
↳341 QDP
↳342 QDPOrderProof (⇔)
↳343 QDP
↳344 QDPOrderProof (⇔)
↳345 QDP
↳346 QDPOrderProof (⇔)
↳347 QDP
↳348 QDPOrderProof (⇔)
↳349 QDP
↳350 PisEmptyProof (⇔)
↳351 TRUE
↳352 QDP
↳353 QDPOrderProof (⇔)
↳354 QDP
↳355 QDPOrderProof (⇔)
↳356 QDP
↳357 PisEmptyProof (⇔)
↳358 TRUE
↳359 QDP
↳360 QDPOrderProof (⇔)
↳361 QDP
↳362 QDPOrderProof (⇔)
↳363 QDP
↳364 PisEmptyProof (⇔)
↳365 TRUE
↳366 QDP
↳367 QDPOrderProof (⇔)
↳368 QDP
↳369 QDPOrderProof (⇔)
↳370 QDP
↳371 QDPOrderProof (⇔)
↳372 QDP
↳373 QDPOrderProof (⇔)
↳374 QDP
↳375 PisEmptyProof (⇔)
↳376 TRUE
↳377 QDP
↳378 QDPOrderProof (⇔)
↳379 QDP
↳380 QDPOrderProof (⇔)
↳381 QDP
↳382 PisEmptyProof (⇔)
↳383 TRUE
↳384 QDP
↳385 QDPOrderProof (⇔)
↳386 QDP
↳387 QDPOrderProof (⇔)
↳388 QDP
↳389 PisEmptyProof (⇔)
↳390 TRUE
↳391 QDP
↳392 QDPOrderProof (⇔)
↳393 QDP
↳394 QDPOrderProof (⇔)
↳395 QDP
↳396 PisEmptyProof (⇔)
↳397 TRUE
↳398 QDP
↳399 QDPOrderProof (⇔)
↳400 QDP
↳401 QDPOrderProof (⇔)
↳402 QDP
↳403 PisEmptyProof (⇔)
↳404 TRUE
↳405 QDP
↳406 QDPOrderProof (⇔)
↳407 QDP
↳408 QDPOrderProof (⇔)
↳409 QDP
↳410 PisEmptyProof (⇔)
↳411 TRUE
↳412 QDP
↳413 QDPOrderProof (⇔)
↳414 QDP
↳415 QDPOrderProof (⇔)
↳416 QDP
↳417 PisEmptyProof (⇔)
↳418 TRUE
↳419 QDP
↳420 QDPOrderProof (⇔)
↳421 QDP
↳422 QDPOrderProof (⇔)
↳423 QDP
↳424 QDPOrderProof (⇔)
↳425 QDP
↳426 QDPOrderProof (⇔)
↳427 QDP
↳428 PisEmptyProof (⇔)
↳429 TRUE
↳430 QDP
↳431 QDPOrderProof (⇔)
↳432 QDP
↳433 QDPOrderProof (⇔)
↳434 QDP
↳435 PisEmptyProof (⇔)
↳436 TRUE
↳437 QDP
↳438 QDPOrderProof (⇔)
↳439 QDP
↳440 QDPOrderProof (⇔)
↳441 QDP
↳442 PisEmptyProof (⇔)
↳443 TRUE
↳444 QDP
↳445 QDPOrderProof (⇔)
↳446 QDP
↳447 QDPOrderProof (⇔)
↳448 QDP
↳449 PisEmptyProof (⇔)
↳450 TRUE
↳451 QDP
↳452 QDPOrderProof (⇔)
↳453 QDP
↳454 QDPOrderProof (⇔)
↳455 QDP
↳456 PisEmptyProof (⇔)
↳457 TRUE
↳458 QDP
↳459 QDPOrderProof (⇔)
↳460 QDP
↳461 QDPOrderProof (⇔)
↳462 QDP
↳463 QDPOrderProof (⇔)
↳464 QDP
↳465 QDPOrderProof (⇔)
↳466 QDP
↳467 PisEmptyProof (⇔)
↳468 TRUE
↳469 QDP
↳470 QDPOrderProof (⇔)
↳471 QDP
↳472 QDPOrderProof (⇔)
↳473 QDP
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
ACTIVE(U101(tt, V1, V2)) → MARK(U102(isNatural(V1), V2))
ACTIVE(U101(tt, V1, V2)) → U1021(isNatural(V1), V2)
ACTIVE(U101(tt, V1, V2)) → ISNATURAL(V1)
ACTIVE(U102(tt, V2)) → MARK(U103(isLNat(V2)))
ACTIVE(U102(tt, V2)) → U1031(isLNat(V2))
ACTIVE(U102(tt, V2)) → ISLNAT(V2)
ACTIVE(U103(tt)) → MARK(tt)
ACTIVE(U11(tt, N, XS)) → MARK(snd(splitAt(N, XS)))
ACTIVE(U11(tt, N, XS)) → SND(splitAt(N, XS))
ACTIVE(U11(tt, N, XS)) → SPLITAT(N, XS)
ACTIVE(U111(tt, V1)) → MARK(U112(isLNat(V1)))
ACTIVE(U111(tt, V1)) → U1121(isLNat(V1))
ACTIVE(U111(tt, V1)) → ISLNAT(V1)
ACTIVE(U112(tt)) → MARK(tt)
ACTIVE(U121(tt, V1)) → MARK(U122(isNatural(V1)))
ACTIVE(U121(tt, V1)) → U1221(isNatural(V1))
ACTIVE(U121(tt, V1)) → ISNATURAL(V1)
ACTIVE(U122(tt)) → MARK(tt)
ACTIVE(U131(tt, V1, V2)) → MARK(U132(isNatural(V1), V2))
ACTIVE(U131(tt, V1, V2)) → U1321(isNatural(V1), V2)
ACTIVE(U131(tt, V1, V2)) → ISNATURAL(V1)
ACTIVE(U132(tt, V2)) → MARK(U133(isLNat(V2)))
ACTIVE(U132(tt, V2)) → U1331(isLNat(V2))
ACTIVE(U132(tt, V2)) → ISLNAT(V2)
ACTIVE(U133(tt)) → MARK(tt)
ACTIVE(U141(tt, V1, V2)) → MARK(U142(isLNat(V1), V2))
ACTIVE(U141(tt, V1, V2)) → U1421(isLNat(V1), V2)
ACTIVE(U141(tt, V1, V2)) → ISLNAT(V1)
ACTIVE(U142(tt, V2)) → MARK(U143(isLNat(V2)))
ACTIVE(U142(tt, V2)) → U1431(isLNat(V2))
ACTIVE(U142(tt, V2)) → ISLNAT(V2)
ACTIVE(U143(tt)) → MARK(tt)
ACTIVE(U151(tt, V1, V2)) → MARK(U152(isNatural(V1), V2))
ACTIVE(U151(tt, V1, V2)) → U1521(isNatural(V1), V2)
ACTIVE(U151(tt, V1, V2)) → ISNATURAL(V1)
ACTIVE(U152(tt, V2)) → MARK(U153(isLNat(V2)))
ACTIVE(U152(tt, V2)) → U1531(isLNat(V2))
ACTIVE(U152(tt, V2)) → ISLNAT(V2)
ACTIVE(U153(tt)) → MARK(tt)
ACTIVE(U161(tt, N)) → MARK(cons(N, natsFrom(s(N))))
ACTIVE(U161(tt, N)) → CONS(N, natsFrom(s(N)))
ACTIVE(U161(tt, N)) → NATSFROM(s(N))
ACTIVE(U161(tt, N)) → S(N)
ACTIVE(U171(tt, N, XS)) → MARK(head(afterNth(N, XS)))
ACTIVE(U171(tt, N, XS)) → HEAD(afterNth(N, XS))
ACTIVE(U171(tt, N, XS)) → AFTERNTH(N, XS)
ACTIVE(U181(tt, Y)) → MARK(Y)
ACTIVE(U191(tt, XS)) → MARK(pair(nil, XS))
ACTIVE(U191(tt, XS)) → PAIR(nil, XS)
ACTIVE(U201(tt, N, X, XS)) → MARK(U202(splitAt(N, XS), X))
ACTIVE(U201(tt, N, X, XS)) → U2021(splitAt(N, XS), X)
ACTIVE(U201(tt, N, X, XS)) → SPLITAT(N, XS)
ACTIVE(U202(pair(YS, ZS), X)) → MARK(pair(cons(X, YS), ZS))
ACTIVE(U202(pair(YS, ZS), X)) → PAIR(cons(X, YS), ZS)
ACTIVE(U202(pair(YS, ZS), X)) → CONS(X, YS)
ACTIVE(U21(tt, X)) → MARK(X)
ACTIVE(U211(tt, XS)) → MARK(XS)
ACTIVE(U221(tt, N, XS)) → MARK(fst(splitAt(N, XS)))
ACTIVE(U221(tt, N, XS)) → FST(splitAt(N, XS))
ACTIVE(U221(tt, N, XS)) → SPLITAT(N, XS)
ACTIVE(U31(tt, N)) → MARK(N)
ACTIVE(U41(tt, V1, V2)) → MARK(U42(isNatural(V1), V2))
ACTIVE(U41(tt, V1, V2)) → U421(isNatural(V1), V2)
ACTIVE(U41(tt, V1, V2)) → ISNATURAL(V1)
ACTIVE(U42(tt, V2)) → MARK(U43(isLNat(V2)))
ACTIVE(U42(tt, V2)) → U431(isLNat(V2))
ACTIVE(U42(tt, V2)) → ISLNAT(V2)
ACTIVE(U43(tt)) → MARK(tt)
ACTIVE(U51(tt, V1, V2)) → MARK(U52(isNatural(V1), V2))
ACTIVE(U51(tt, V1, V2)) → U521(isNatural(V1), V2)
ACTIVE(U51(tt, V1, V2)) → ISNATURAL(V1)
ACTIVE(U52(tt, V2)) → MARK(U53(isLNat(V2)))
ACTIVE(U52(tt, V2)) → U531(isLNat(V2))
ACTIVE(U52(tt, V2)) → ISLNAT(V2)
ACTIVE(U53(tt)) → MARK(tt)
ACTIVE(U61(tt, V1)) → MARK(U62(isPLNat(V1)))
ACTIVE(U61(tt, V1)) → U621(isPLNat(V1))
ACTIVE(U61(tt, V1)) → ISPLNAT(V1)
ACTIVE(U62(tt)) → MARK(tt)
ACTIVE(U71(tt, V1)) → MARK(U72(isNatural(V1)))
ACTIVE(U71(tt, V1)) → U721(isNatural(V1))
ACTIVE(U71(tt, V1)) → ISNATURAL(V1)
ACTIVE(U72(tt)) → MARK(tt)
ACTIVE(U81(tt, V1)) → MARK(U82(isPLNat(V1)))
ACTIVE(U81(tt, V1)) → U821(isPLNat(V1))
ACTIVE(U81(tt, V1)) → ISPLNAT(V1)
ACTIVE(U82(tt)) → MARK(tt)
ACTIVE(U91(tt, V1)) → MARK(U92(isLNat(V1)))
ACTIVE(U91(tt, V1)) → U921(isLNat(V1))
ACTIVE(U91(tt, V1)) → ISLNAT(V1)
ACTIVE(U92(tt)) → MARK(tt)
ACTIVE(afterNth(N, XS)) → MARK(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
ACTIVE(afterNth(N, XS)) → U111(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)
ACTIVE(afterNth(N, XS)) → AND(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS)))
ACTIVE(afterNth(N, XS)) → AND(isNatural(N), isNaturalKind(N))
ACTIVE(afterNth(N, XS)) → ISNATURAL(N)
ACTIVE(afterNth(N, XS)) → ISNATURALKIND(N)
ACTIVE(afterNth(N, XS)) → AND(isLNat(XS), isLNatKind(XS))
ACTIVE(afterNth(N, XS)) → ISLNAT(XS)
ACTIVE(afterNth(N, XS)) → ISLNATKIND(XS)
ACTIVE(and(tt, X)) → MARK(X)
ACTIVE(fst(pair(X, Y))) → MARK(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
ACTIVE(fst(pair(X, Y))) → U211(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)
ACTIVE(fst(pair(X, Y))) → AND(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y)))
ACTIVE(fst(pair(X, Y))) → AND(isLNat(X), isLNatKind(X))
ACTIVE(fst(pair(X, Y))) → ISLNAT(X)
ACTIVE(fst(pair(X, Y))) → ISLNATKIND(X)
ACTIVE(fst(pair(X, Y))) → AND(isLNat(Y), isLNatKind(Y))
ACTIVE(fst(pair(X, Y))) → ISLNAT(Y)
ACTIVE(fst(pair(X, Y))) → ISLNATKIND(Y)
ACTIVE(head(cons(N, XS))) → MARK(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
ACTIVE(head(cons(N, XS))) → U311(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)
ACTIVE(head(cons(N, XS))) → AND(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS)))
ACTIVE(head(cons(N, XS))) → AND(isNatural(N), isNaturalKind(N))
ACTIVE(head(cons(N, XS))) → ISNATURAL(N)
ACTIVE(head(cons(N, XS))) → ISNATURALKIND(N)
ACTIVE(head(cons(N, XS))) → AND(isLNat(XS), isLNatKind(XS))
ACTIVE(head(cons(N, XS))) → ISLNAT(XS)
ACTIVE(head(cons(N, XS))) → ISLNATKIND(XS)
ACTIVE(isLNat(nil)) → MARK(tt)
ACTIVE(isLNat(afterNth(V1, V2))) → MARK(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
ACTIVE(isLNat(afterNth(V1, V2))) → U411(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)
ACTIVE(isLNat(afterNth(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isLNat(afterNth(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isLNat(afterNth(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isLNat(cons(V1, V2))) → MARK(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
ACTIVE(isLNat(cons(V1, V2))) → U511(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)
ACTIVE(isLNat(cons(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isLNat(cons(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isLNat(cons(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isLNat(fst(V1))) → MARK(U61(isPLNatKind(V1), V1))
ACTIVE(isLNat(fst(V1))) → U611(isPLNatKind(V1), V1)
ACTIVE(isLNat(fst(V1))) → ISPLNATKIND(V1)
ACTIVE(isLNat(natsFrom(V1))) → MARK(U71(isNaturalKind(V1), V1))
ACTIVE(isLNat(natsFrom(V1))) → U711(isNaturalKind(V1), V1)
ACTIVE(isLNat(natsFrom(V1))) → ISNATURALKIND(V1)
ACTIVE(isLNat(snd(V1))) → MARK(U81(isPLNatKind(V1), V1))
ACTIVE(isLNat(snd(V1))) → U811(isPLNatKind(V1), V1)
ACTIVE(isLNat(snd(V1))) → ISPLNATKIND(V1)
ACTIVE(isLNat(tail(V1))) → MARK(U91(isLNatKind(V1), V1))
ACTIVE(isLNat(tail(V1))) → U911(isLNatKind(V1), V1)
ACTIVE(isLNat(tail(V1))) → ISLNATKIND(V1)
ACTIVE(isLNat(take(V1, V2))) → MARK(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
ACTIVE(isLNat(take(V1, V2))) → U1011(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)
ACTIVE(isLNat(take(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isLNat(take(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isLNat(take(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isLNatKind(nil)) → MARK(tt)
ACTIVE(isLNatKind(afterNth(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
ACTIVE(isLNatKind(afterNth(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isLNatKind(afterNth(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isLNatKind(afterNth(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isLNatKind(cons(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
ACTIVE(isLNatKind(cons(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isLNatKind(cons(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isLNatKind(cons(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isLNatKind(fst(V1))) → MARK(isPLNatKind(V1))
ACTIVE(isLNatKind(fst(V1))) → ISPLNATKIND(V1)
ACTIVE(isLNatKind(natsFrom(V1))) → MARK(isNaturalKind(V1))
ACTIVE(isLNatKind(natsFrom(V1))) → ISNATURALKIND(V1)
ACTIVE(isLNatKind(snd(V1))) → MARK(isPLNatKind(V1))
ACTIVE(isLNatKind(snd(V1))) → ISPLNATKIND(V1)
ACTIVE(isLNatKind(tail(V1))) → MARK(isLNatKind(V1))
ACTIVE(isLNatKind(tail(V1))) → ISLNATKIND(V1)
ACTIVE(isLNatKind(take(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
ACTIVE(isLNatKind(take(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isLNatKind(take(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isLNatKind(take(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isNatural(0)) → MARK(tt)
ACTIVE(isNatural(head(V1))) → MARK(U111(isLNatKind(V1), V1))
ACTIVE(isNatural(head(V1))) → U1111(isLNatKind(V1), V1)
ACTIVE(isNatural(head(V1))) → ISLNATKIND(V1)
ACTIVE(isNatural(s(V1))) → MARK(U121(isNaturalKind(V1), V1))
ACTIVE(isNatural(s(V1))) → U1211(isNaturalKind(V1), V1)
ACTIVE(isNatural(s(V1))) → ISNATURALKIND(V1)
ACTIVE(isNatural(sel(V1, V2))) → MARK(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
ACTIVE(isNatural(sel(V1, V2))) → U1311(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)
ACTIVE(isNatural(sel(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isNatural(sel(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isNatural(sel(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isNaturalKind(0)) → MARK(tt)
ACTIVE(isNaturalKind(head(V1))) → MARK(isLNatKind(V1))
ACTIVE(isNaturalKind(head(V1))) → ISLNATKIND(V1)
ACTIVE(isNaturalKind(s(V1))) → MARK(isNaturalKind(V1))
ACTIVE(isNaturalKind(s(V1))) → ISNATURALKIND(V1)
ACTIVE(isNaturalKind(sel(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
ACTIVE(isNaturalKind(sel(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isNaturalKind(sel(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isNaturalKind(sel(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isPLNat(pair(V1, V2))) → MARK(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
ACTIVE(isPLNat(pair(V1, V2))) → U1411(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)
ACTIVE(isPLNat(pair(V1, V2))) → AND(isLNatKind(V1), isLNatKind(V2))
ACTIVE(isPLNat(pair(V1, V2))) → ISLNATKIND(V1)
ACTIVE(isPLNat(pair(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isPLNat(splitAt(V1, V2))) → MARK(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
ACTIVE(isPLNat(splitAt(V1, V2))) → U1511(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)
ACTIVE(isPLNat(splitAt(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isPLNat(splitAt(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isPLNat(splitAt(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isPLNatKind(pair(V1, V2))) → MARK(and(isLNatKind(V1), isLNatKind(V2)))
ACTIVE(isPLNatKind(pair(V1, V2))) → AND(isLNatKind(V1), isLNatKind(V2))
ACTIVE(isPLNatKind(pair(V1, V2))) → ISLNATKIND(V1)
ACTIVE(isPLNatKind(pair(V1, V2))) → ISLNATKIND(V2)
ACTIVE(isPLNatKind(splitAt(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
ACTIVE(isPLNatKind(splitAt(V1, V2))) → AND(isNaturalKind(V1), isLNatKind(V2))
ACTIVE(isPLNatKind(splitAt(V1, V2))) → ISNATURALKIND(V1)
ACTIVE(isPLNatKind(splitAt(V1, V2))) → ISLNATKIND(V2)
ACTIVE(natsFrom(N)) → MARK(U161(and(isNatural(N), isNaturalKind(N)), N))
ACTIVE(natsFrom(N)) → U1611(and(isNatural(N), isNaturalKind(N)), N)
ACTIVE(natsFrom(N)) → AND(isNatural(N), isNaturalKind(N))
ACTIVE(natsFrom(N)) → ISNATURAL(N)
ACTIVE(natsFrom(N)) → ISNATURALKIND(N)
ACTIVE(sel(N, XS)) → MARK(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
ACTIVE(sel(N, XS)) → U1711(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)
ACTIVE(sel(N, XS)) → AND(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS)))
ACTIVE(sel(N, XS)) → AND(isNatural(N), isNaturalKind(N))
ACTIVE(sel(N, XS)) → ISNATURAL(N)
ACTIVE(sel(N, XS)) → ISNATURALKIND(N)
ACTIVE(sel(N, XS)) → AND(isLNat(XS), isLNatKind(XS))
ACTIVE(sel(N, XS)) → ISLNAT(XS)
ACTIVE(sel(N, XS)) → ISLNATKIND(XS)
ACTIVE(snd(pair(X, Y))) → MARK(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
ACTIVE(snd(pair(X, Y))) → U1811(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)
ACTIVE(snd(pair(X, Y))) → AND(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y)))
ACTIVE(snd(pair(X, Y))) → AND(isLNat(X), isLNatKind(X))
ACTIVE(snd(pair(X, Y))) → ISLNAT(X)
ACTIVE(snd(pair(X, Y))) → ISLNATKIND(X)
ACTIVE(snd(pair(X, Y))) → AND(isLNat(Y), isLNatKind(Y))
ACTIVE(snd(pair(X, Y))) → ISLNAT(Y)
ACTIVE(snd(pair(X, Y))) → ISLNATKIND(Y)
ACTIVE(splitAt(0, XS)) → MARK(U191(and(isLNat(XS), isLNatKind(XS)), XS))
ACTIVE(splitAt(0, XS)) → U1911(and(isLNat(XS), isLNatKind(XS)), XS)
ACTIVE(splitAt(0, XS)) → AND(isLNat(XS), isLNatKind(XS))
ACTIVE(splitAt(0, XS)) → ISLNAT(XS)
ACTIVE(splitAt(0, XS)) → ISLNATKIND(XS)
ACTIVE(splitAt(s(N), cons(X, XS))) → MARK(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
ACTIVE(splitAt(s(N), cons(X, XS))) → U2011(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)
ACTIVE(splitAt(s(N), cons(X, XS))) → AND(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS))))
ACTIVE(splitAt(s(N), cons(X, XS))) → AND(isNatural(N), isNaturalKind(N))
ACTIVE(splitAt(s(N), cons(X, XS))) → ISNATURAL(N)
ACTIVE(splitAt(s(N), cons(X, XS))) → ISNATURALKIND(N)
ACTIVE(splitAt(s(N), cons(X, XS))) → AND(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))
ACTIVE(splitAt(s(N), cons(X, XS))) → AND(isNatural(X), isNaturalKind(X))
ACTIVE(splitAt(s(N), cons(X, XS))) → ISNATURAL(X)
ACTIVE(splitAt(s(N), cons(X, XS))) → ISNATURALKIND(X)
ACTIVE(splitAt(s(N), cons(X, XS))) → AND(isLNat(XS), isLNatKind(XS))
ACTIVE(splitAt(s(N), cons(X, XS))) → ISLNAT(XS)
ACTIVE(splitAt(s(N), cons(X, XS))) → ISLNATKIND(XS)
ACTIVE(tail(cons(N, XS))) → MARK(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
ACTIVE(tail(cons(N, XS))) → U2111(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)
ACTIVE(tail(cons(N, XS))) → AND(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS)))
ACTIVE(tail(cons(N, XS))) → AND(isNatural(N), isNaturalKind(N))
ACTIVE(tail(cons(N, XS))) → ISNATURAL(N)
ACTIVE(tail(cons(N, XS))) → ISNATURALKIND(N)
ACTIVE(tail(cons(N, XS))) → AND(isLNat(XS), isLNatKind(XS))
ACTIVE(tail(cons(N, XS))) → ISLNAT(XS)
ACTIVE(tail(cons(N, XS))) → ISLNATKIND(XS)
ACTIVE(take(N, XS)) → MARK(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
ACTIVE(take(N, XS)) → U2211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)
ACTIVE(take(N, XS)) → AND(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS)))
ACTIVE(take(N, XS)) → AND(isNatural(N), isNaturalKind(N))
ACTIVE(take(N, XS)) → ISNATURAL(N)
ACTIVE(take(N, XS)) → ISNATURALKIND(N)
ACTIVE(take(N, XS)) → AND(isLNat(XS), isLNatKind(XS))
ACTIVE(take(N, XS)) → ISLNAT(XS)
ACTIVE(take(N, XS)) → ISLNATKIND(XS)
MARK(U101(X1, X2, X3)) → ACTIVE(U101(mark(X1), X2, X3))
MARK(U101(X1, X2, X3)) → U1011(mark(X1), X2, X3)
MARK(U101(X1, X2, X3)) → MARK(X1)
MARK(tt) → ACTIVE(tt)
MARK(U102(X1, X2)) → ACTIVE(U102(mark(X1), X2))
MARK(U102(X1, X2)) → U1021(mark(X1), X2)
MARK(U102(X1, X2)) → MARK(X1)
MARK(isNatural(X)) → ACTIVE(isNatural(X))
MARK(U103(X)) → ACTIVE(U103(mark(X)))
MARK(U103(X)) → U1031(mark(X))
MARK(U103(X)) → MARK(X)
MARK(isLNat(X)) → ACTIVE(isLNat(X))
MARK(U11(X1, X2, X3)) → ACTIVE(U11(mark(X1), X2, X3))
MARK(U11(X1, X2, X3)) → U111(mark(X1), X2, X3)
MARK(U11(X1, X2, X3)) → MARK(X1)
MARK(snd(X)) → ACTIVE(snd(mark(X)))
MARK(snd(X)) → SND(mark(X))
MARK(snd(X)) → MARK(X)
MARK(splitAt(X1, X2)) → ACTIVE(splitAt(mark(X1), mark(X2)))
MARK(splitAt(X1, X2)) → SPLITAT(mark(X1), mark(X2))
MARK(splitAt(X1, X2)) → MARK(X1)
MARK(splitAt(X1, X2)) → MARK(X2)
MARK(U111(X1, X2)) → ACTIVE(U111(mark(X1), X2))
MARK(U111(X1, X2)) → U1111(mark(X1), X2)
MARK(U111(X1, X2)) → MARK(X1)
MARK(U112(X)) → ACTIVE(U112(mark(X)))
MARK(U112(X)) → U1121(mark(X))
MARK(U112(X)) → MARK(X)
MARK(U121(X1, X2)) → ACTIVE(U121(mark(X1), X2))
MARK(U121(X1, X2)) → U1211(mark(X1), X2)
MARK(U121(X1, X2)) → MARK(X1)
MARK(U122(X)) → ACTIVE(U122(mark(X)))
MARK(U122(X)) → U1221(mark(X))
MARK(U122(X)) → MARK(X)
MARK(U131(X1, X2, X3)) → ACTIVE(U131(mark(X1), X2, X3))
MARK(U131(X1, X2, X3)) → U1311(mark(X1), X2, X3)
MARK(U131(X1, X2, X3)) → MARK(X1)
MARK(U132(X1, X2)) → ACTIVE(U132(mark(X1), X2))
MARK(U132(X1, X2)) → U1321(mark(X1), X2)
MARK(U132(X1, X2)) → MARK(X1)
MARK(U133(X)) → ACTIVE(U133(mark(X)))
MARK(U133(X)) → U1331(mark(X))
MARK(U133(X)) → MARK(X)
MARK(U141(X1, X2, X3)) → ACTIVE(U141(mark(X1), X2, X3))
MARK(U141(X1, X2, X3)) → U1411(mark(X1), X2, X3)
MARK(U141(X1, X2, X3)) → MARK(X1)
MARK(U142(X1, X2)) → ACTIVE(U142(mark(X1), X2))
MARK(U142(X1, X2)) → U1421(mark(X1), X2)
MARK(U142(X1, X2)) → MARK(X1)
MARK(U143(X)) → ACTIVE(U143(mark(X)))
MARK(U143(X)) → U1431(mark(X))
MARK(U143(X)) → MARK(X)
MARK(U151(X1, X2, X3)) → ACTIVE(U151(mark(X1), X2, X3))
MARK(U151(X1, X2, X3)) → U1511(mark(X1), X2, X3)
MARK(U151(X1, X2, X3)) → MARK(X1)
MARK(U152(X1, X2)) → ACTIVE(U152(mark(X1), X2))
MARK(U152(X1, X2)) → U1521(mark(X1), X2)
MARK(U152(X1, X2)) → MARK(X1)
MARK(U153(X)) → ACTIVE(U153(mark(X)))
MARK(U153(X)) → U1531(mark(X))
MARK(U153(X)) → MARK(X)
MARK(U161(X1, X2)) → ACTIVE(U161(mark(X1), X2))
MARK(U161(X1, X2)) → U1611(mark(X1), X2)
MARK(U161(X1, X2)) → MARK(X1)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
MARK(cons(X1, X2)) → CONS(mark(X1), X2)
MARK(cons(X1, X2)) → MARK(X1)
MARK(natsFrom(X)) → ACTIVE(natsFrom(mark(X)))
MARK(natsFrom(X)) → NATSFROM(mark(X))
MARK(natsFrom(X)) → MARK(X)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → S(mark(X))
MARK(s(X)) → MARK(X)
MARK(U171(X1, X2, X3)) → ACTIVE(U171(mark(X1), X2, X3))
MARK(U171(X1, X2, X3)) → U1711(mark(X1), X2, X3)
MARK(U171(X1, X2, X3)) → MARK(X1)
MARK(head(X)) → ACTIVE(head(mark(X)))
MARK(head(X)) → HEAD(mark(X))
MARK(head(X)) → MARK(X)
MARK(afterNth(X1, X2)) → ACTIVE(afterNth(mark(X1), mark(X2)))
MARK(afterNth(X1, X2)) → AFTERNTH(mark(X1), mark(X2))
MARK(afterNth(X1, X2)) → MARK(X1)
MARK(afterNth(X1, X2)) → MARK(X2)
MARK(U181(X1, X2)) → ACTIVE(U181(mark(X1), X2))
MARK(U181(X1, X2)) → U1811(mark(X1), X2)
MARK(U181(X1, X2)) → MARK(X1)
MARK(U191(X1, X2)) → ACTIVE(U191(mark(X1), X2))
MARK(U191(X1, X2)) → U1911(mark(X1), X2)
MARK(U191(X1, X2)) → MARK(X1)
MARK(pair(X1, X2)) → ACTIVE(pair(mark(X1), mark(X2)))
MARK(pair(X1, X2)) → PAIR(mark(X1), mark(X2))
MARK(pair(X1, X2)) → MARK(X1)
MARK(pair(X1, X2)) → MARK(X2)
MARK(nil) → ACTIVE(nil)
MARK(U201(X1, X2, X3, X4)) → ACTIVE(U201(mark(X1), X2, X3, X4))
MARK(U201(X1, X2, X3, X4)) → U2011(mark(X1), X2, X3, X4)
MARK(U201(X1, X2, X3, X4)) → MARK(X1)
MARK(U202(X1, X2)) → ACTIVE(U202(mark(X1), X2))
MARK(U202(X1, X2)) → U2021(mark(X1), X2)
MARK(U202(X1, X2)) → MARK(X1)
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
MARK(U21(X1, X2)) → U211(mark(X1), X2)
MARK(U21(X1, X2)) → MARK(X1)
MARK(U211(X1, X2)) → ACTIVE(U211(mark(X1), X2))
MARK(U211(X1, X2)) → U2111(mark(X1), X2)
MARK(U211(X1, X2)) → MARK(X1)
MARK(U221(X1, X2, X3)) → ACTIVE(U221(mark(X1), X2, X3))
MARK(U221(X1, X2, X3)) → U2211(mark(X1), X2, X3)
MARK(U221(X1, X2, X3)) → MARK(X1)
MARK(fst(X)) → ACTIVE(fst(mark(X)))
MARK(fst(X)) → FST(mark(X))
MARK(fst(X)) → MARK(X)
MARK(U31(X1, X2)) → ACTIVE(U31(mark(X1), X2))
MARK(U31(X1, X2)) → U311(mark(X1), X2)
MARK(U31(X1, X2)) → MARK(X1)
MARK(U41(X1, X2, X3)) → ACTIVE(U41(mark(X1), X2, X3))
MARK(U41(X1, X2, X3)) → U411(mark(X1), X2, X3)
MARK(U41(X1, X2, X3)) → MARK(X1)
MARK(U42(X1, X2)) → ACTIVE(U42(mark(X1), X2))
MARK(U42(X1, X2)) → U421(mark(X1), X2)
MARK(U42(X1, X2)) → MARK(X1)
MARK(U43(X)) → ACTIVE(U43(mark(X)))
MARK(U43(X)) → U431(mark(X))
MARK(U43(X)) → MARK(X)
MARK(U51(X1, X2, X3)) → ACTIVE(U51(mark(X1), X2, X3))
MARK(U51(X1, X2, X3)) → U511(mark(X1), X2, X3)
MARK(U51(X1, X2, X3)) → MARK(X1)
MARK(U52(X1, X2)) → ACTIVE(U52(mark(X1), X2))
MARK(U52(X1, X2)) → U521(mark(X1), X2)
MARK(U52(X1, X2)) → MARK(X1)
MARK(U53(X)) → ACTIVE(U53(mark(X)))
MARK(U53(X)) → U531(mark(X))
MARK(U53(X)) → MARK(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(isPLNat(X)) → ACTIVE(isPLNat(X))
MARK(U71(X1, X2)) → ACTIVE(U71(mark(X1), X2))
MARK(U71(X1, X2)) → U711(mark(X1), X2)
MARK(U71(X1, X2)) → MARK(X1)
MARK(U72(X)) → ACTIVE(U72(mark(X)))
MARK(U72(X)) → U721(mark(X))
MARK(U72(X)) → MARK(X)
MARK(U81(X1, X2)) → ACTIVE(U81(mark(X1), X2))
MARK(U81(X1, X2)) → U811(mark(X1), X2)
MARK(U81(X1, X2)) → MARK(X1)
MARK(U82(X)) → ACTIVE(U82(mark(X)))
MARK(U82(X)) → U821(mark(X))
MARK(U82(X)) → MARK(X)
MARK(U91(X1, X2)) → ACTIVE(U91(mark(X1), X2))
MARK(U91(X1, X2)) → U911(mark(X1), X2)
MARK(U91(X1, X2)) → MARK(X1)
MARK(U92(X)) → ACTIVE(U92(mark(X)))
MARK(U92(X)) → U921(mark(X))
MARK(U92(X)) → MARK(X)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
MARK(and(X1, X2)) → AND(mark(X1), X2)
MARK(and(X1, X2)) → MARK(X1)
MARK(isNaturalKind(X)) → ACTIVE(isNaturalKind(X))
MARK(isLNatKind(X)) → ACTIVE(isLNatKind(X))
MARK(isPLNatKind(X)) → ACTIVE(isPLNatKind(X))
MARK(tail(X)) → ACTIVE(tail(mark(X)))
MARK(tail(X)) → TAIL(mark(X))
MARK(tail(X)) → MARK(X)
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)
MARK(0) → ACTIVE(0)
MARK(sel(X1, X2)) → ACTIVE(sel(mark(X1), mark(X2)))
MARK(sel(X1, X2)) → SEL(mark(X1), mark(X2))
MARK(sel(X1, X2)) → MARK(X1)
MARK(sel(X1, X2)) → MARK(X2)
U1011(mark(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, mark(X2), X3) → U1011(X1, X2, X3)
U1011(X1, X2, mark(X3)) → U1011(X1, X2, X3)
U1011(active(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, active(X2), X3) → U1011(X1, X2, X3)
U1011(X1, X2, active(X3)) → U1011(X1, X2, X3)
U1021(mark(X1), X2) → U1021(X1, X2)
U1021(X1, mark(X2)) → U1021(X1, X2)
U1021(active(X1), X2) → U1021(X1, X2)
U1021(X1, active(X2)) → U1021(X1, X2)
ISNATURAL(mark(X)) → ISNATURAL(X)
ISNATURAL(active(X)) → ISNATURAL(X)
U1031(mark(X)) → U1031(X)
U1031(active(X)) → U1031(X)
ISLNAT(mark(X)) → ISLNAT(X)
ISLNAT(active(X)) → ISLNAT(X)
U111(mark(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, mark(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, mark(X3)) → U111(X1, X2, X3)
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)
SND(mark(X)) → SND(X)
SND(active(X)) → SND(X)
SPLITAT(mark(X1), X2) → SPLITAT(X1, X2)
SPLITAT(X1, mark(X2)) → SPLITAT(X1, X2)
SPLITAT(active(X1), X2) → SPLITAT(X1, X2)
SPLITAT(X1, active(X2)) → SPLITAT(X1, X2)
U1111(mark(X1), X2) → U1111(X1, X2)
U1111(X1, mark(X2)) → U1111(X1, X2)
U1111(active(X1), X2) → U1111(X1, X2)
U1111(X1, active(X2)) → U1111(X1, X2)
U1121(mark(X)) → U1121(X)
U1121(active(X)) → U1121(X)
U1211(mark(X1), X2) → U1211(X1, X2)
U1211(X1, mark(X2)) → U1211(X1, X2)
U1211(active(X1), X2) → U1211(X1, X2)
U1211(X1, active(X2)) → U1211(X1, X2)
U1221(mark(X)) → U1221(X)
U1221(active(X)) → U1221(X)
U1311(mark(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, mark(X2), X3) → U1311(X1, X2, X3)
U1311(X1, X2, mark(X3)) → U1311(X1, X2, X3)
U1311(active(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, active(X2), X3) → U1311(X1, X2, X3)
U1311(X1, X2, active(X3)) → U1311(X1, X2, X3)
U1321(mark(X1), X2) → U1321(X1, X2)
U1321(X1, mark(X2)) → U1321(X1, X2)
U1321(active(X1), X2) → U1321(X1, X2)
U1321(X1, active(X2)) → U1321(X1, X2)
U1331(mark(X)) → U1331(X)
U1331(active(X)) → U1331(X)
U1411(mark(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, mark(X2), X3) → U1411(X1, X2, X3)
U1411(X1, X2, mark(X3)) → U1411(X1, X2, X3)
U1411(active(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, active(X2), X3) → U1411(X1, X2, X3)
U1411(X1, X2, active(X3)) → U1411(X1, X2, X3)
U1421(mark(X1), X2) → U1421(X1, X2)
U1421(X1, mark(X2)) → U1421(X1, X2)
U1421(active(X1), X2) → U1421(X1, X2)
U1421(X1, active(X2)) → U1421(X1, X2)
U1431(mark(X)) → U1431(X)
U1431(active(X)) → U1431(X)
U1511(mark(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, mark(X2), X3) → U1511(X1, X2, X3)
U1511(X1, X2, mark(X3)) → U1511(X1, X2, X3)
U1511(active(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, active(X2), X3) → U1511(X1, X2, X3)
U1511(X1, X2, active(X3)) → U1511(X1, X2, X3)
U1521(mark(X1), X2) → U1521(X1, X2)
U1521(X1, mark(X2)) → U1521(X1, X2)
U1521(active(X1), X2) → U1521(X1, X2)
U1521(X1, active(X2)) → U1521(X1, X2)
U1531(mark(X)) → U1531(X)
U1531(active(X)) → U1531(X)
U1611(mark(X1), X2) → U1611(X1, X2)
U1611(X1, mark(X2)) → U1611(X1, X2)
U1611(active(X1), X2) → U1611(X1, X2)
U1611(X1, active(X2)) → U1611(X1, 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)
NATSFROM(mark(X)) → NATSFROM(X)
NATSFROM(active(X)) → NATSFROM(X)
S(mark(X)) → S(X)
S(active(X)) → S(X)
U1711(mark(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, mark(X2), X3) → U1711(X1, X2, X3)
U1711(X1, X2, mark(X3)) → U1711(X1, X2, X3)
U1711(active(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, active(X2), X3) → U1711(X1, X2, X3)
U1711(X1, X2, active(X3)) → U1711(X1, X2, X3)
HEAD(mark(X)) → HEAD(X)
HEAD(active(X)) → HEAD(X)
AFTERNTH(mark(X1), X2) → AFTERNTH(X1, X2)
AFTERNTH(X1, mark(X2)) → AFTERNTH(X1, X2)
AFTERNTH(active(X1), X2) → AFTERNTH(X1, X2)
AFTERNTH(X1, active(X2)) → AFTERNTH(X1, X2)
U1811(mark(X1), X2) → U1811(X1, X2)
U1811(X1, mark(X2)) → U1811(X1, X2)
U1811(active(X1), X2) → U1811(X1, X2)
U1811(X1, active(X2)) → U1811(X1, X2)
U1911(mark(X1), X2) → U1911(X1, X2)
U1911(X1, mark(X2)) → U1911(X1, X2)
U1911(active(X1), X2) → U1911(X1, X2)
U1911(X1, active(X2)) → U1911(X1, X2)
PAIR(mark(X1), X2) → PAIR(X1, X2)
PAIR(X1, mark(X2)) → PAIR(X1, X2)
PAIR(active(X1), X2) → PAIR(X1, X2)
PAIR(X1, active(X2)) → PAIR(X1, X2)
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, mark(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, mark(X3), X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, X3, mark(X4)) → U2011(X1, X2, X3, X4)
U2011(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, active(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, active(X3), X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, X3, active(X4)) → U2011(X1, X2, X3, X4)
U2021(mark(X1), X2) → U2021(X1, X2)
U2021(X1, mark(X2)) → U2021(X1, X2)
U2021(active(X1), X2) → U2021(X1, X2)
U2021(X1, active(X2)) → U2021(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U2111(mark(X1), X2) → U2111(X1, X2)
U2111(X1, mark(X2)) → U2111(X1, X2)
U2111(active(X1), X2) → U2111(X1, X2)
U2111(X1, active(X2)) → U2111(X1, X2)
U2211(mark(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, mark(X2), X3) → U2211(X1, X2, X3)
U2211(X1, X2, mark(X3)) → U2211(X1, X2, X3)
U2211(active(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, active(X2), X3) → U2211(X1, X2, X3)
U2211(X1, X2, active(X3)) → U2211(X1, X2, X3)
FST(mark(X)) → FST(X)
FST(active(X)) → FST(X)
U311(mark(X1), X2) → U311(X1, X2)
U311(X1, mark(X2)) → U311(X1, X2)
U311(active(X1), X2) → U311(X1, X2)
U311(X1, active(X2)) → U311(X1, X2)
U411(mark(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, mark(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, mark(X3)) → U411(X1, X2, X3)
U411(active(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, active(X3)) → U411(X1, X2, X3)
U421(mark(X1), X2) → U421(X1, X2)
U421(X1, mark(X2)) → U421(X1, X2)
U421(active(X1), X2) → U421(X1, X2)
U421(X1, active(X2)) → U421(X1, X2)
U431(mark(X)) → U431(X)
U431(active(X)) → U431(X)
U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, mark(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, mark(X3)) → U511(X1, X2, X3)
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)
U521(mark(X1), X2) → U521(X1, X2)
U521(X1, mark(X2)) → U521(X1, X2)
U521(active(X1), X2) → U521(X1, X2)
U521(X1, active(X2)) → U521(X1, X2)
U531(mark(X)) → U531(X)
U531(active(X)) → U531(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)
ISPLNAT(mark(X)) → ISPLNAT(X)
ISPLNAT(active(X)) → ISPLNAT(X)
U711(mark(X1), X2) → U711(X1, X2)
U711(X1, mark(X2)) → U711(X1, X2)
U711(active(X1), X2) → U711(X1, X2)
U711(X1, active(X2)) → U711(X1, X2)
U721(mark(X)) → U721(X)
U721(active(X)) → U721(X)
U811(mark(X1), X2) → U811(X1, X2)
U811(X1, mark(X2)) → U811(X1, X2)
U811(active(X1), X2) → U811(X1, X2)
U811(X1, active(X2)) → U811(X1, X2)
U821(mark(X)) → U821(X)
U821(active(X)) → U821(X)
U911(mark(X1), X2) → U911(X1, X2)
U911(X1, mark(X2)) → U911(X1, X2)
U911(active(X1), X2) → U911(X1, X2)
U911(X1, active(X2)) → U911(X1, X2)
U921(mark(X)) → U921(X)
U921(active(X)) → U921(X)
AND(mark(X1), X2) → AND(X1, X2)
AND(X1, mark(X2)) → AND(X1, X2)
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)
ISNATURALKIND(mark(X)) → ISNATURALKIND(X)
ISNATURALKIND(active(X)) → ISNATURALKIND(X)
ISLNATKIND(mark(X)) → ISLNATKIND(X)
ISLNATKIND(active(X)) → ISLNATKIND(X)
ISPLNATKIND(mark(X)) → ISPLNATKIND(X)
ISPLNATKIND(active(X)) → ISPLNATKIND(X)
TAIL(mark(X)) → TAIL(X)
TAIL(active(X)) → TAIL(X)
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)
SEL(mark(X1), X2) → SEL(X1, X2)
SEL(X1, mark(X2)) → SEL(X1, X2)
SEL(active(X1), X2) → SEL(X1, X2)
SEL(X1, active(X2)) → SEL(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
SEL(X1, mark(X2)) → SEL(X1, X2)
SEL(mark(X1), X2) → SEL(X1, X2)
SEL(active(X1), X2) → SEL(X1, X2)
SEL(X1, active(X2)) → SEL(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SEL(X1, mark(X2)) → SEL(X1, X2)
SEL(mark(X1), X2) → SEL(X1, X2)
[SEL2, mark1]
mark1: [1]
SEL2: [2,1]
SEL(active(X1), X2) → SEL(X1, X2)
SEL(X1, active(X2)) → SEL(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SEL(active(X1), X2) → SEL(X1, X2)
SEL(X1, active(X2)) → SEL(X1, X2)
[SEL2, active1]
active1: [1]
SEL2: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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)
TAKE(mark(X1), X2) → TAKE(X1, X2)
[TAKE2, mark1]
TAKE2: [2,1]
mark1: [1]
TAKE(active(X1), X2) → TAKE(X1, X2)
TAKE(X1, active(X2)) → TAKE(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TAKE(active(X1), X2) → TAKE(X1, X2)
TAKE(X1, active(X2)) → TAKE(X1, X2)
[TAKE2, active1]
active1: [1]
TAKE2: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
TAIL(active(X)) → TAIL(X)
TAIL(mark(X)) → TAIL(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TAIL(active(X)) → TAIL(X)
[TAIL1, active1]
active1: [1]
TAIL1: [1]
TAIL(mark(X)) → TAIL(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
TAIL(mark(X)) → TAIL(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
ISPLNATKIND(active(X)) → ISPLNATKIND(X)
ISPLNATKIND(mark(X)) → ISPLNATKIND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISPLNATKIND(active(X)) → ISPLNATKIND(X)
[ISPLNATKIND1, active1]
ISPLNATKIND1: [1]
active1: [1]
ISPLNATKIND(mark(X)) → ISPLNATKIND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISPLNATKIND(mark(X)) → ISPLNATKIND(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
ISLNATKIND(active(X)) → ISLNATKIND(X)
ISLNATKIND(mark(X)) → ISLNATKIND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISLNATKIND(active(X)) → ISLNATKIND(X)
[ISLNATKIND1, active1]
active1: [1]
ISLNATKIND1: [1]
ISLNATKIND(mark(X)) → ISLNATKIND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISLNATKIND(mark(X)) → ISLNATKIND(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
ISNATURALKIND(active(X)) → ISNATURALKIND(X)
ISNATURALKIND(mark(X)) → ISNATURALKIND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISNATURALKIND(active(X)) → ISNATURALKIND(X)
[ISNATURALKIND1, active1]
active1: [1]
ISNATURALKIND1: [1]
ISNATURALKIND(mark(X)) → ISNATURALKIND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISNATURALKIND(mark(X)) → ISNATURALKIND(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
AND(X1, mark(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AND(X1, mark(X2)) → AND(X1, X2)
AND(mark(X1), X2) → AND(X1, X2)
[AND2, mark1]
AND2: [2,1]
mark1: [1]
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AND(active(X1), X2) → AND(X1, X2)
AND(X1, active(X2)) → AND(X1, X2)
[AND2, active1]
active1: [1]
AND2: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U921(active(X)) → U921(X)
U921(mark(X)) → U921(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(active(X)) → U921(X)
[U92^11, active1]
active1: [1]
U92^11: [1]
U921(mark(X)) → U921(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U921(mark(X)) → U921(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U911(X1, mark(X2)) → U911(X1, X2)
U911(mark(X1), X2) → U911(X1, X2)
U911(active(X1), X2) → U911(X1, X2)
U911(X1, active(X2)) → U911(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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)) → U911(X1, X2)
U911(mark(X1), X2) → U911(X1, X2)
[U91^12, mark1]
U91^12: [2,1]
mark1: [1]
U911(active(X1), X2) → U911(X1, X2)
U911(X1, active(X2)) → U911(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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) → U911(X1, X2)
U911(X1, active(X2)) → U911(X1, X2)
[U91^12, active1]
active1: [1]
U91^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U821(active(X)) → U821(X)
U821(mark(X)) → U821(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U821(active(X)) → U821(X)
[U82^11, active1]
active1: [1]
U82^11: [1]
U821(mark(X)) → U821(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U821(mark(X)) → U821(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U811(X1, mark(X2)) → U811(X1, X2)
U811(mark(X1), X2) → U811(X1, X2)
U811(active(X1), X2) → U811(X1, X2)
U811(X1, active(X2)) → U811(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U811(X1, mark(X2)) → U811(X1, X2)
U811(mark(X1), X2) → U811(X1, X2)
[U81^12, mark1]
U81^12: [2,1]
mark1: [1]
U811(active(X1), X2) → U811(X1, X2)
U811(X1, active(X2)) → U811(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U811(active(X1), X2) → U811(X1, X2)
U811(X1, active(X2)) → U811(X1, X2)
[U81^12, active1]
active1: [1]
U81^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U721(active(X)) → U721(X)
U721(mark(X)) → U721(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U721(active(X)) → U721(X)
[U72^11, active1]
active1: [1]
U72^11: [1]
U721(mark(X)) → U721(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U721(mark(X)) → U721(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U711(X1, mark(X2)) → U711(X1, X2)
U711(mark(X1), X2) → U711(X1, X2)
U711(active(X1), X2) → U711(X1, X2)
U711(X1, active(X2)) → U711(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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)) → U711(X1, X2)
U711(mark(X1), X2) → U711(X1, X2)
[U71^12, mark1]
U71^12: [2,1]
mark1: [1]
U711(active(X1), X2) → U711(X1, X2)
U711(X1, active(X2)) → U711(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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) → U711(X1, X2)
U711(X1, active(X2)) → U711(X1, X2)
[U71^12, active1]
active1: [1]
U71^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
ISPLNAT(active(X)) → ISPLNAT(X)
ISPLNAT(mark(X)) → ISPLNAT(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISPLNAT(active(X)) → ISPLNAT(X)
[ISPLNAT1, active1]
ISPLNAT1: [1]
active1: [1]
ISPLNAT(mark(X)) → ISPLNAT(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISPLNAT(mark(X)) → ISPLNAT(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U621(active(X)) → U621(X)
U621(mark(X)) → U621(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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)
[U62^11, active1]
active1: [1]
U62^11: [1]
U621(mark(X)) → U621(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U621(mark(X)) → U621(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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)
U611(mark(X1), X2) → U611(X1, X2)
[U61^12, mark1]
U61^12: [2,1]
mark1: [1]
U611(active(X1), X2) → U611(X1, X2)
U611(X1, active(X2)) → U611(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U611(active(X1), X2) → U611(X1, X2)
U611(X1, active(X2)) → U611(X1, X2)
[U61^12, active1]
active1: [1]
U61^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U531(active(X)) → U531(X)
U531(mark(X)) → U531(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U531(active(X)) → U531(X)
[U53^11, active1]
active1: [1]
U53^11: [1]
U531(mark(X)) → U531(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U531(mark(X)) → U531(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U521(X1, mark(X2)) → U521(X1, X2)
U521(mark(X1), X2) → U521(X1, X2)
U521(active(X1), X2) → U521(X1, X2)
U521(X1, active(X2)) → U521(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U521(X1, mark(X2)) → U521(X1, X2)
U521(mark(X1), X2) → U521(X1, X2)
[U52^12, mark1]
U52^12: [2,1]
mark1: [1]
U521(active(X1), X2) → U521(X1, X2)
U521(X1, active(X2)) → U521(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U521(active(X1), X2) → U521(X1, X2)
U521(X1, active(X2)) → U521(X1, X2)
[U52^12, active1]
active1: [1]
U52^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U511(X1, mark(X2), X3) → U511(X1, X2, X3)
U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, X2, mark(X3)) → U511(X1, X2, X3)
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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), X3) → U511(X1, X2, X3)
U511(X1, X2, mark(X3)) → U511(X1, X2, X3)
mark1 > U51^12
U51^12: [2,1]
mark1: [1]
U511(mark(X1), X2, X3) → U511(X1, X2, X3)
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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, X3) → U511(X1, X2, X3)
[U51^13, mark1]
U51^13: [3,2,1]
mark1: [1]
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
U511(X1, X2, active(X3)) → U511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U511(X1, X2, active(X3)) → U511(X1, X2, X3)
active1 > U51^11
active1: [1]
U51^11: [1]
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U511(active(X1), X2, X3) → U511(X1, X2, X3)
U511(X1, active(X2), X3) → U511(X1, X2, X3)
[U51^13, active1]
U51^13: [3,2,1]
active1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U431(active(X)) → U431(X)
U431(mark(X)) → U431(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U431(active(X)) → U431(X)
[U43^11, active1]
active1: [1]
U43^11: [1]
U431(mark(X)) → U431(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U431(mark(X)) → U431(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U421(X1, mark(X2)) → U421(X1, X2)
U421(mark(X1), X2) → U421(X1, X2)
U421(active(X1), X2) → U421(X1, X2)
U421(X1, active(X2)) → U421(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U421(X1, mark(X2)) → U421(X1, X2)
U421(mark(X1), X2) → U421(X1, X2)
[U42^12, mark1]
U42^12: [2,1]
mark1: [1]
U421(active(X1), X2) → U421(X1, X2)
U421(X1, active(X2)) → U421(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U421(active(X1), X2) → U421(X1, X2)
U421(X1, active(X2)) → U421(X1, X2)
[U42^12, active1]
active1: [1]
U42^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U411(X1, mark(X2), X3) → U411(X1, X2, X3)
U411(mark(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, X2, mark(X3)) → U411(X1, X2, X3)
U411(active(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, active(X3)) → U411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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), X3) → U411(X1, X2, X3)
U411(X1, X2, mark(X3)) → U411(X1, X2, X3)
mark1 > U41^12
U41^12: [2,1]
mark1: [1]
U411(mark(X1), X2, X3) → U411(X1, X2, X3)
U411(active(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, active(X3)) → U411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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, X3) → U411(X1, X2, X3)
[U41^13, mark1]
mark1: [1]
U41^13: [3,2,1]
U411(active(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, active(X3)) → U411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U411(X1, X2, active(X3)) → U411(X1, X2, X3)
active1 > U41^11
active1: [1]
U41^11: [1]
U411(active(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U411(active(X1), X2, X3) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
[U41^13, active1]
active1: [1]
U41^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U311(X1, mark(X2)) → U311(X1, X2)
U311(mark(X1), X2) → U311(X1, X2)
U311(active(X1), X2) → U311(X1, X2)
U311(X1, active(X2)) → U311(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U311(X1, mark(X2)) → U311(X1, X2)
U311(mark(X1), X2) → U311(X1, X2)
[U31^12, mark1]
U31^12: [2,1]
mark1: [1]
U311(active(X1), X2) → U311(X1, X2)
U311(X1, active(X2)) → U311(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U311(active(X1), X2) → U311(X1, X2)
U311(X1, active(X2)) → U311(X1, X2)
[U31^12, active1]
active1: [1]
U31^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
FST(active(X)) → FST(X)
FST(mark(X)) → FST(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FST(active(X)) → FST(X)
[FST1, active1]
active1: [1]
FST1: [1]
FST(mark(X)) → FST(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FST(mark(X)) → FST(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U2211(X1, mark(X2), X3) → U2211(X1, X2, X3)
U2211(mark(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, X2, mark(X3)) → U2211(X1, X2, X3)
U2211(active(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, active(X2), X3) → U2211(X1, X2, X3)
U2211(X1, X2, active(X3)) → U2211(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2211(X1, mark(X2), X3) → U2211(X1, X2, X3)
U2211(X1, X2, mark(X3)) → U2211(X1, X2, X3)
mark1 > U221^12
mark1: [1]
U221^12: [2,1]
U2211(mark(X1), X2, X3) → U2211(X1, X2, X3)
U2211(active(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, active(X2), X3) → U2211(X1, X2, X3)
U2211(X1, X2, active(X3)) → U2211(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2211(mark(X1), X2, X3) → U2211(X1, X2, X3)
[U221^13, mark1]
mark1: [1]
U221^13: [3,2,1]
U2211(active(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, active(X2), X3) → U2211(X1, X2, X3)
U2211(X1, X2, active(X3)) → U2211(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2211(X1, X2, active(X3)) → U2211(X1, X2, X3)
active1 > U221^11
active1: [1]
U221^11: [1]
U2211(active(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, active(X2), X3) → U2211(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2211(active(X1), X2, X3) → U2211(X1, X2, X3)
U2211(X1, active(X2), X3) → U2211(X1, X2, X3)
[U221^13, active1]
active1: [1]
U221^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U2111(X1, mark(X2)) → U2111(X1, X2)
U2111(mark(X1), X2) → U2111(X1, X2)
U2111(active(X1), X2) → U2111(X1, X2)
U2111(X1, active(X2)) → U2111(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2111(X1, mark(X2)) → U2111(X1, X2)
U2111(mark(X1), X2) → U2111(X1, X2)
[U211^12, mark1]
mark1: [1]
U211^12: [2,1]
U2111(active(X1), X2) → U2111(X1, X2)
U2111(X1, active(X2)) → U2111(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2111(active(X1), X2) → U2111(X1, X2)
U2111(X1, active(X2)) → U2111(X1, X2)
[U211^12, active1]
active1: [1]
U211^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U211(X1, mark(X2)) → U211(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
[U21^12, mark1]
U21^12: [2,1]
mark1: [1]
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
[U21^12, active1]
active1: [1]
U21^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U2021(X1, mark(X2)) → U2021(X1, X2)
U2021(mark(X1), X2) → U2021(X1, X2)
U2021(active(X1), X2) → U2021(X1, X2)
U2021(X1, active(X2)) → U2021(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2021(X1, mark(X2)) → U2021(X1, X2)
U2021(mark(X1), X2) → U2021(X1, X2)
[U202^12, mark1]
U202^12: [2,1]
mark1: [1]
U2021(active(X1), X2) → U2021(X1, X2)
U2021(X1, active(X2)) → U2021(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2021(active(X1), X2) → U2021(X1, X2)
U2021(X1, active(X2)) → U2021(X1, X2)
[U202^12, active1]
active1: [1]
U202^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U2011(X1, mark(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, mark(X3), X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, X3, mark(X4)) → U2011(X1, X2, X3, X4)
U2011(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, active(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, active(X3), X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, X3, active(X4)) → U2011(X1, X2, X3, X4)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2011(X1, X2, mark(X3), X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, X3, mark(X4)) → U2011(X1, X2, X3, X4)
trivial
U201^12: [2,1]
mark1: [1]
U2011(X1, mark(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, active(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, active(X3), X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, X3, active(X4)) → U2011(X1, X2, X3, X4)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2011(X1, X2, active(X3), X4) → U2011(X1, X2, X3, X4)
U2011(X1, X2, X3, active(X4)) → U2011(X1, X2, X3, X4)
trivial
U201^12: [2,1]
active1: [1]
mark: []
U2011(X1, mark(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(X1, active(X2), X3, X4) → U2011(X1, X2, X3, X4)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2011(X1, active(X2), X3, X4) → U2011(X1, X2, X3, X4)
active1 > U201^11
U201^11: [1]
active1: [1]
U2011(X1, mark(X2), X3, X4) → U2011(X1, X2, X3, X4)
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2011(X1, mark(X2), X3, X4) → U2011(X1, X2, X3, X4)
trivial
active: []
U201^12: [1,2]
mark1: [1]
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
U2011(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2011(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
[U201^12, active1]
active1: [1]
U201^12: [1,2]
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2011(mark(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
PAIR(X1, mark(X2)) → PAIR(X1, X2)
PAIR(mark(X1), X2) → PAIR(X1, X2)
PAIR(active(X1), X2) → PAIR(X1, X2)
PAIR(X1, active(X2)) → PAIR(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PAIR(X1, mark(X2)) → PAIR(X1, X2)
PAIR(mark(X1), X2) → PAIR(X1, X2)
[PAIR2, mark1]
PAIR2: [2,1]
mark1: [1]
PAIR(active(X1), X2) → PAIR(X1, X2)
PAIR(X1, active(X2)) → PAIR(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PAIR(active(X1), X2) → PAIR(X1, X2)
PAIR(X1, active(X2)) → PAIR(X1, X2)
[PAIR2, active1]
active1: [1]
PAIR2: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1911(X1, mark(X2)) → U1911(X1, X2)
U1911(mark(X1), X2) → U1911(X1, X2)
U1911(active(X1), X2) → U1911(X1, X2)
U1911(X1, active(X2)) → U1911(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1911(X1, mark(X2)) → U1911(X1, X2)
U1911(mark(X1), X2) → U1911(X1, X2)
[U191^12, mark1]
U191^12: [2,1]
mark1: [1]
U1911(active(X1), X2) → U1911(X1, X2)
U1911(X1, active(X2)) → U1911(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1911(active(X1), X2) → U1911(X1, X2)
U1911(X1, active(X2)) → U1911(X1, X2)
[U191^12, active1]
active1: [1]
U191^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1811(X1, mark(X2)) → U1811(X1, X2)
U1811(mark(X1), X2) → U1811(X1, X2)
U1811(active(X1), X2) → U1811(X1, X2)
U1811(X1, active(X2)) → U1811(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1811(X1, mark(X2)) → U1811(X1, X2)
U1811(mark(X1), X2) → U1811(X1, X2)
[U181^12, mark1]
U181^12: [2,1]
mark1: [1]
U1811(active(X1), X2) → U1811(X1, X2)
U1811(X1, active(X2)) → U1811(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1811(active(X1), X2) → U1811(X1, X2)
U1811(X1, active(X2)) → U1811(X1, X2)
[U181^12, active1]
active1: [1]
U181^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
AFTERNTH(X1, mark(X2)) → AFTERNTH(X1, X2)
AFTERNTH(mark(X1), X2) → AFTERNTH(X1, X2)
AFTERNTH(active(X1), X2) → AFTERNTH(X1, X2)
AFTERNTH(X1, active(X2)) → AFTERNTH(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AFTERNTH(X1, mark(X2)) → AFTERNTH(X1, X2)
AFTERNTH(mark(X1), X2) → AFTERNTH(X1, X2)
[AFTERNTH2, mark1]
mark1: [1]
AFTERNTH2: [2,1]
AFTERNTH(active(X1), X2) → AFTERNTH(X1, X2)
AFTERNTH(X1, active(X2)) → AFTERNTH(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AFTERNTH(active(X1), X2) → AFTERNTH(X1, X2)
AFTERNTH(X1, active(X2)) → AFTERNTH(X1, X2)
[AFTERNTH2, active1]
active1: [1]
AFTERNTH2: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
HEAD(active(X)) → HEAD(X)
HEAD(mark(X)) → HEAD(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
HEAD(active(X)) → HEAD(X)
[HEAD1, active1]
active1: [1]
HEAD1: [1]
HEAD(mark(X)) → HEAD(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
HEAD(mark(X)) → HEAD(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1711(X1, mark(X2), X3) → U1711(X1, X2, X3)
U1711(mark(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, X2, mark(X3)) → U1711(X1, X2, X3)
U1711(active(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, active(X2), X3) → U1711(X1, X2, X3)
U1711(X1, X2, active(X3)) → U1711(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1711(X1, mark(X2), X3) → U1711(X1, X2, X3)
U1711(X1, X2, mark(X3)) → U1711(X1, X2, X3)
mark1 > U171^12
U171^12: [2,1]
mark1: [1]
U1711(mark(X1), X2, X3) → U1711(X1, X2, X3)
U1711(active(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, active(X2), X3) → U1711(X1, X2, X3)
U1711(X1, X2, active(X3)) → U1711(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1711(mark(X1), X2, X3) → U1711(X1, X2, X3)
[U171^13, mark1]
mark1: [1]
U171^13: [3,2,1]
U1711(active(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, active(X2), X3) → U1711(X1, X2, X3)
U1711(X1, X2, active(X3)) → U1711(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1711(X1, X2, active(X3)) → U1711(X1, X2, X3)
active1 > U171^11
active1: [1]
U171^11: [1]
U1711(active(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, active(X2), X3) → U1711(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1711(active(X1), X2, X3) → U1711(X1, X2, X3)
U1711(X1, active(X2), X3) → U1711(X1, X2, X3)
[U171^13, active1]
active1: [1]
U171^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
S(active(X)) → S(X)
S(mark(X)) → S(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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)
[S1, active1]
active1: [1]
S1: [1]
S(mark(X)) → S(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
S(mark(X)) → S(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
NATSFROM(active(X)) → NATSFROM(X)
NATSFROM(mark(X)) → NATSFROM(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
NATSFROM(active(X)) → NATSFROM(X)
[NATSFROM1, active1]
active1: [1]
NATSFROM1: [1]
NATSFROM(mark(X)) → NATSFROM(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
NATSFROM(mark(X)) → NATSFROM(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(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)
CONS(mark(X1), X2) → CONS(X1, X2)
[CONS2, mark1]
CONS2: [2,1]
mark1: [1]
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
[CONS2, active1]
active1: [1]
CONS2: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1611(X1, mark(X2)) → U1611(X1, X2)
U1611(mark(X1), X2) → U1611(X1, X2)
U1611(active(X1), X2) → U1611(X1, X2)
U1611(X1, active(X2)) → U1611(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1611(X1, mark(X2)) → U1611(X1, X2)
U1611(mark(X1), X2) → U1611(X1, X2)
[U161^12, mark1]
mark1: [1]
U161^12: [2,1]
U1611(active(X1), X2) → U1611(X1, X2)
U1611(X1, active(X2)) → U1611(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1611(active(X1), X2) → U1611(X1, X2)
U1611(X1, active(X2)) → U1611(X1, X2)
[U161^12, active1]
active1: [1]
U161^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1531(active(X)) → U1531(X)
U1531(mark(X)) → U1531(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1531(active(X)) → U1531(X)
[U153^11, active1]
active1: [1]
U153^11: [1]
U1531(mark(X)) → U1531(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1531(mark(X)) → U1531(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1521(X1, mark(X2)) → U1521(X1, X2)
U1521(mark(X1), X2) → U1521(X1, X2)
U1521(active(X1), X2) → U1521(X1, X2)
U1521(X1, active(X2)) → U1521(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1521(X1, mark(X2)) → U1521(X1, X2)
U1521(mark(X1), X2) → U1521(X1, X2)
[U152^12, mark1]
mark1: [1]
U152^12: [2,1]
U1521(active(X1), X2) → U1521(X1, X2)
U1521(X1, active(X2)) → U1521(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1521(active(X1), X2) → U1521(X1, X2)
U1521(X1, active(X2)) → U1521(X1, X2)
[U152^12, active1]
active1: [1]
U152^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1511(X1, mark(X2), X3) → U1511(X1, X2, X3)
U1511(mark(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, X2, mark(X3)) → U1511(X1, X2, X3)
U1511(active(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, active(X2), X3) → U1511(X1, X2, X3)
U1511(X1, X2, active(X3)) → U1511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1511(X1, mark(X2), X3) → U1511(X1, X2, X3)
U1511(X1, X2, mark(X3)) → U1511(X1, X2, X3)
mark1 > U151^12
mark1: [1]
U151^12: [2,1]
U1511(mark(X1), X2, X3) → U1511(X1, X2, X3)
U1511(active(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, active(X2), X3) → U1511(X1, X2, X3)
U1511(X1, X2, active(X3)) → U1511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1511(mark(X1), X2, X3) → U1511(X1, X2, X3)
[U151^13, mark1]
mark1: [1]
U151^13: [3,2,1]
U1511(active(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, active(X2), X3) → U1511(X1, X2, X3)
U1511(X1, X2, active(X3)) → U1511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1511(X1, X2, active(X3)) → U1511(X1, X2, X3)
active1 > U151^11
active1: [1]
U151^11: [1]
U1511(active(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, active(X2), X3) → U1511(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1511(active(X1), X2, X3) → U1511(X1, X2, X3)
U1511(X1, active(X2), X3) → U1511(X1, X2, X3)
[U151^13, active1]
active1: [1]
U151^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1431(active(X)) → U1431(X)
U1431(mark(X)) → U1431(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1431(active(X)) → U1431(X)
[U143^11, active1]
active1: [1]
U143^11: [1]
U1431(mark(X)) → U1431(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1431(mark(X)) → U1431(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1421(X1, mark(X2)) → U1421(X1, X2)
U1421(mark(X1), X2) → U1421(X1, X2)
U1421(active(X1), X2) → U1421(X1, X2)
U1421(X1, active(X2)) → U1421(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1421(X1, mark(X2)) → U1421(X1, X2)
U1421(mark(X1), X2) → U1421(X1, X2)
[U142^12, mark1]
mark1: [1]
U142^12: [2,1]
U1421(active(X1), X2) → U1421(X1, X2)
U1421(X1, active(X2)) → U1421(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1421(active(X1), X2) → U1421(X1, X2)
U1421(X1, active(X2)) → U1421(X1, X2)
[U142^12, active1]
active1: [1]
U142^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1411(X1, mark(X2), X3) → U1411(X1, X2, X3)
U1411(mark(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, X2, mark(X3)) → U1411(X1, X2, X3)
U1411(active(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, active(X2), X3) → U1411(X1, X2, X3)
U1411(X1, X2, active(X3)) → U1411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1411(X1, mark(X2), X3) → U1411(X1, X2, X3)
U1411(X1, X2, mark(X3)) → U1411(X1, X2, X3)
mark1 > U141^12
U141^12: [2,1]
mark1: [1]
U1411(mark(X1), X2, X3) → U1411(X1, X2, X3)
U1411(active(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, active(X2), X3) → U1411(X1, X2, X3)
U1411(X1, X2, active(X3)) → U1411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1411(mark(X1), X2, X3) → U1411(X1, X2, X3)
[U141^13, mark1]
mark1: [1]
U141^13: [3,2,1]
U1411(active(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, active(X2), X3) → U1411(X1, X2, X3)
U1411(X1, X2, active(X3)) → U1411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1411(X1, X2, active(X3)) → U1411(X1, X2, X3)
active1 > U141^11
active1: [1]
U141^11: [1]
U1411(active(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, active(X2), X3) → U1411(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1411(active(X1), X2, X3) → U1411(X1, X2, X3)
U1411(X1, active(X2), X3) → U1411(X1, X2, X3)
[U141^13, active1]
active1: [1]
U141^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1331(active(X)) → U1331(X)
U1331(mark(X)) → U1331(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1331(active(X)) → U1331(X)
[U133^11, active1]
active1: [1]
U133^11: [1]
U1331(mark(X)) → U1331(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1331(mark(X)) → U1331(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1321(X1, mark(X2)) → U1321(X1, X2)
U1321(mark(X1), X2) → U1321(X1, X2)
U1321(active(X1), X2) → U1321(X1, X2)
U1321(X1, active(X2)) → U1321(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1321(X1, mark(X2)) → U1321(X1, X2)
U1321(mark(X1), X2) → U1321(X1, X2)
[U132^12, mark1]
U132^12: [2,1]
mark1: [1]
U1321(active(X1), X2) → U1321(X1, X2)
U1321(X1, active(X2)) → U1321(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1321(active(X1), X2) → U1321(X1, X2)
U1321(X1, active(X2)) → U1321(X1, X2)
[U132^12, active1]
active1: [1]
U132^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1311(X1, mark(X2), X3) → U1311(X1, X2, X3)
U1311(mark(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, X2, mark(X3)) → U1311(X1, X2, X3)
U1311(active(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, active(X2), X3) → U1311(X1, X2, X3)
U1311(X1, X2, active(X3)) → U1311(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1311(X1, mark(X2), X3) → U1311(X1, X2, X3)
U1311(X1, X2, mark(X3)) → U1311(X1, X2, X3)
mark1 > U131^12
U131^12: [2,1]
mark1: [1]
U1311(mark(X1), X2, X3) → U1311(X1, X2, X3)
U1311(active(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, active(X2), X3) → U1311(X1, X2, X3)
U1311(X1, X2, active(X3)) → U1311(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1311(mark(X1), X2, X3) → U1311(X1, X2, X3)
[U131^13, mark1]
U131^13: [3,2,1]
mark1: [1]
U1311(active(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, active(X2), X3) → U1311(X1, X2, X3)
U1311(X1, X2, active(X3)) → U1311(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1311(X1, X2, active(X3)) → U1311(X1, X2, X3)
active1 > U131^11
active1: [1]
U131^11: [1]
U1311(active(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, active(X2), X3) → U1311(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1311(active(X1), X2, X3) → U1311(X1, X2, X3)
U1311(X1, active(X2), X3) → U1311(X1, X2, X3)
[U131^13, active1]
active1: [1]
U131^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1221(active(X)) → U1221(X)
U1221(mark(X)) → U1221(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1221(active(X)) → U1221(X)
[U122^11, active1]
active1: [1]
U122^11: [1]
U1221(mark(X)) → U1221(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1221(mark(X)) → U1221(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1211(X1, mark(X2)) → U1211(X1, X2)
U1211(mark(X1), X2) → U1211(X1, X2)
U1211(active(X1), X2) → U1211(X1, X2)
U1211(X1, active(X2)) → U1211(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1211(X1, mark(X2)) → U1211(X1, X2)
U1211(mark(X1), X2) → U1211(X1, X2)
[U121^12, mark1]
mark1: [1]
U121^12: [2,1]
U1211(active(X1), X2) → U1211(X1, X2)
U1211(X1, active(X2)) → U1211(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1211(active(X1), X2) → U1211(X1, X2)
U1211(X1, active(X2)) → U1211(X1, X2)
[U121^12, active1]
active1: [1]
U121^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1121(active(X)) → U1121(X)
U1121(mark(X)) → U1121(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1121(active(X)) → U1121(X)
[U112^11, active1]
active1: [1]
U112^11: [1]
U1121(mark(X)) → U1121(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1121(mark(X)) → U1121(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1111(X1, mark(X2)) → U1111(X1, X2)
U1111(mark(X1), X2) → U1111(X1, X2)
U1111(active(X1), X2) → U1111(X1, X2)
U1111(X1, active(X2)) → U1111(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1111(X1, mark(X2)) → U1111(X1, X2)
U1111(mark(X1), X2) → U1111(X1, X2)
[U111^12, mark1]
mark1: [1]
U111^12: [2,1]
U1111(active(X1), X2) → U1111(X1, X2)
U1111(X1, active(X2)) → U1111(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1111(active(X1), X2) → U1111(X1, X2)
U1111(X1, active(X2)) → U1111(X1, X2)
[U111^12, active1]
active1: [1]
U111^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
SPLITAT(X1, mark(X2)) → SPLITAT(X1, X2)
SPLITAT(mark(X1), X2) → SPLITAT(X1, X2)
SPLITAT(active(X1), X2) → SPLITAT(X1, X2)
SPLITAT(X1, active(X2)) → SPLITAT(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SPLITAT(X1, mark(X2)) → SPLITAT(X1, X2)
SPLITAT(mark(X1), X2) → SPLITAT(X1, X2)
[SPLITAT2, mark1]
SPLITAT2: [2,1]
mark1: [1]
SPLITAT(active(X1), X2) → SPLITAT(X1, X2)
SPLITAT(X1, active(X2)) → SPLITAT(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SPLITAT(active(X1), X2) → SPLITAT(X1, X2)
SPLITAT(X1, active(X2)) → SPLITAT(X1, X2)
[SPLITAT2, active1]
active1: [1]
SPLITAT2: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
SND(active(X)) → SND(X)
SND(mark(X)) → SND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SND(active(X)) → SND(X)
[SND1, active1]
active1: [1]
SND1: [1]
SND(mark(X)) → SND(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SND(mark(X)) → SND(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U111(X1, mark(X2), X3) → U111(X1, X2, X3)
U111(mark(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, X2, mark(X3)) → U111(X1, X2, X3)
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U111(X1, mark(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, mark(X3)) → U111(X1, X2, X3)
mark1 > U11^12
U11^12: [2,1]
mark1: [1]
U111(mark(X1), X2, X3) → U111(X1, X2, X3)
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U111(mark(X1), X2, X3) → U111(X1, X2, X3)
[U11^13, mark1]
U11^13: [3,2,1]
mark1: [1]
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
U111(X1, X2, active(X3)) → U111(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U111(X1, X2, active(X3)) → U111(X1, X2, X3)
active1 > U11^11
active1: [1]
U11^11: [1]
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U111(active(X1), X2, X3) → U111(X1, X2, X3)
U111(X1, active(X2), X3) → U111(X1, X2, X3)
[U11^13, active1]
active1: [1]
U11^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
ISLNAT(active(X)) → ISLNAT(X)
ISLNAT(mark(X)) → ISLNAT(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISLNAT(active(X)) → ISLNAT(X)
[ISLNAT1, active1]
active1: [1]
ISLNAT1: [1]
ISLNAT(mark(X)) → ISLNAT(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISLNAT(mark(X)) → ISLNAT(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1031(active(X)) → U1031(X)
U1031(mark(X)) → U1031(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1031(active(X)) → U1031(X)
[U103^11, active1]
active1: [1]
U103^11: [1]
U1031(mark(X)) → U1031(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1031(mark(X)) → U1031(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
ISNATURAL(active(X)) → ISNATURAL(X)
ISNATURAL(mark(X)) → ISNATURAL(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISNATURAL(active(X)) → ISNATURAL(X)
[ISNATURAL1, active1]
active1: [1]
ISNATURAL1: [1]
ISNATURAL(mark(X)) → ISNATURAL(X)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ISNATURAL(mark(X)) → ISNATURAL(X)
trivial
mark1: [1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1021(X1, mark(X2)) → U1021(X1, X2)
U1021(mark(X1), X2) → U1021(X1, X2)
U1021(active(X1), X2) → U1021(X1, X2)
U1021(X1, active(X2)) → U1021(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1021(X1, mark(X2)) → U1021(X1, X2)
U1021(mark(X1), X2) → U1021(X1, X2)
[U102^12, mark1]
U102^12: [2,1]
mark1: [1]
U1021(active(X1), X2) → U1021(X1, X2)
U1021(X1, active(X2)) → U1021(X1, X2)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1021(active(X1), X2) → U1021(X1, X2)
U1021(X1, active(X2)) → U1021(X1, X2)
[U102^12, active1]
active1: [1]
U102^12: [2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
U1011(X1, mark(X2), X3) → U1011(X1, X2, X3)
U1011(mark(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, X2, mark(X3)) → U1011(X1, X2, X3)
U1011(active(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, active(X2), X3) → U1011(X1, X2, X3)
U1011(X1, X2, active(X3)) → U1011(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1011(X1, mark(X2), X3) → U1011(X1, X2, X3)
U1011(X1, X2, mark(X3)) → U1011(X1, X2, X3)
mark1 > U101^12
mark1: [1]
U101^12: [2,1]
U1011(mark(X1), X2, X3) → U1011(X1, X2, X3)
U1011(active(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, active(X2), X3) → U1011(X1, X2, X3)
U1011(X1, X2, active(X3)) → U1011(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1011(mark(X1), X2, X3) → U1011(X1, X2, X3)
[U101^13, mark1]
mark1: [1]
U101^13: [3,2,1]
U1011(active(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, active(X2), X3) → U1011(X1, X2, X3)
U1011(X1, X2, active(X3)) → U1011(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1011(X1, X2, active(X3)) → U1011(X1, X2, X3)
active1 > U101^11
active1: [1]
U101^11: [1]
U1011(active(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, active(X2), X3) → U1011(X1, X2, X3)
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U1011(active(X1), X2, X3) → U1011(X1, X2, X3)
U1011(X1, active(X2), X3) → U1011(X1, X2, X3)
[U101^13, active1]
active1: [1]
U101^13: [3,2,1]
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
MARK(U101(X1, X2, X3)) → ACTIVE(U101(mark(X1), X2, X3))
ACTIVE(U101(tt, V1, V2)) → MARK(U102(isNatural(V1), V2))
MARK(U101(X1, X2, X3)) → MARK(X1)
MARK(U102(X1, X2)) → ACTIVE(U102(mark(X1), X2))
ACTIVE(U102(tt, V2)) → MARK(U103(isLNat(V2)))
MARK(U102(X1, X2)) → MARK(X1)
MARK(isNatural(X)) → ACTIVE(isNatural(X))
ACTIVE(U11(tt, N, XS)) → MARK(snd(splitAt(N, XS)))
MARK(U103(X)) → ACTIVE(U103(mark(X)))
ACTIVE(U111(tt, V1)) → MARK(U112(isLNat(V1)))
MARK(U103(X)) → MARK(X)
MARK(isLNat(X)) → ACTIVE(isLNat(X))
ACTIVE(U121(tt, V1)) → MARK(U122(isNatural(V1)))
MARK(U11(X1, X2, X3)) → ACTIVE(U11(mark(X1), X2, X3))
ACTIVE(U131(tt, V1, V2)) → MARK(U132(isNatural(V1), V2))
MARK(U11(X1, X2, X3)) → MARK(X1)
MARK(snd(X)) → ACTIVE(snd(mark(X)))
ACTIVE(U132(tt, V2)) → MARK(U133(isLNat(V2)))
MARK(snd(X)) → MARK(X)
MARK(splitAt(X1, X2)) → ACTIVE(splitAt(mark(X1), mark(X2)))
ACTIVE(U141(tt, V1, V2)) → MARK(U142(isLNat(V1), V2))
MARK(splitAt(X1, X2)) → MARK(X1)
MARK(splitAt(X1, X2)) → MARK(X2)
MARK(U111(X1, X2)) → ACTIVE(U111(mark(X1), X2))
ACTIVE(U142(tt, V2)) → MARK(U143(isLNat(V2)))
MARK(U111(X1, X2)) → MARK(X1)
MARK(U112(X)) → ACTIVE(U112(mark(X)))
ACTIVE(U151(tt, V1, V2)) → MARK(U152(isNatural(V1), V2))
MARK(U112(X)) → MARK(X)
MARK(U121(X1, X2)) → ACTIVE(U121(mark(X1), X2))
ACTIVE(U152(tt, V2)) → MARK(U153(isLNat(V2)))
MARK(U121(X1, X2)) → MARK(X1)
MARK(U122(X)) → ACTIVE(U122(mark(X)))
ACTIVE(U161(tt, N)) → MARK(cons(N, natsFrom(s(N))))
MARK(U122(X)) → MARK(X)
MARK(U131(X1, X2, X3)) → ACTIVE(U131(mark(X1), X2, X3))
ACTIVE(U171(tt, N, XS)) → MARK(head(afterNth(N, XS)))
MARK(U131(X1, X2, X3)) → MARK(X1)
MARK(U132(X1, X2)) → ACTIVE(U132(mark(X1), X2))
ACTIVE(U181(tt, Y)) → MARK(Y)
MARK(U132(X1, X2)) → MARK(X1)
MARK(U133(X)) → ACTIVE(U133(mark(X)))
ACTIVE(U191(tt, XS)) → MARK(pair(nil, XS))
MARK(U133(X)) → MARK(X)
MARK(U141(X1, X2, X3)) → ACTIVE(U141(mark(X1), X2, X3))
ACTIVE(U201(tt, N, X, XS)) → MARK(U202(splitAt(N, XS), X))
MARK(U141(X1, X2, X3)) → MARK(X1)
MARK(U142(X1, X2)) → ACTIVE(U142(mark(X1), X2))
ACTIVE(U202(pair(YS, ZS), X)) → MARK(pair(cons(X, YS), ZS))
MARK(U142(X1, X2)) → MARK(X1)
MARK(U143(X)) → ACTIVE(U143(mark(X)))
ACTIVE(U21(tt, X)) → MARK(X)
MARK(U143(X)) → MARK(X)
MARK(U151(X1, X2, X3)) → ACTIVE(U151(mark(X1), X2, X3))
ACTIVE(U211(tt, XS)) → MARK(XS)
MARK(U151(X1, X2, X3)) → MARK(X1)
MARK(U152(X1, X2)) → ACTIVE(U152(mark(X1), X2))
ACTIVE(U221(tt, N, XS)) → MARK(fst(splitAt(N, XS)))
MARK(U152(X1, X2)) → MARK(X1)
MARK(U153(X)) → ACTIVE(U153(mark(X)))
ACTIVE(U31(tt, N)) → MARK(N)
MARK(U153(X)) → MARK(X)
MARK(U161(X1, X2)) → ACTIVE(U161(mark(X1), X2))
ACTIVE(U41(tt, V1, V2)) → MARK(U42(isNatural(V1), V2))
MARK(U161(X1, X2)) → MARK(X1)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U42(tt, V2)) → MARK(U43(isLNat(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(natsFrom(X)) → ACTIVE(natsFrom(mark(X)))
ACTIVE(U51(tt, V1, V2)) → MARK(U52(isNatural(V1), V2))
MARK(natsFrom(X)) → MARK(X)
MARK(s(X)) → ACTIVE(s(mark(X)))
ACTIVE(U52(tt, V2)) → MARK(U53(isLNat(V2)))
MARK(s(X)) → MARK(X)
MARK(U171(X1, X2, X3)) → ACTIVE(U171(mark(X1), X2, X3))
ACTIVE(U61(tt, V1)) → MARK(U62(isPLNat(V1)))
MARK(U171(X1, X2, X3)) → MARK(X1)
MARK(head(X)) → ACTIVE(head(mark(X)))
ACTIVE(U71(tt, V1)) → MARK(U72(isNatural(V1)))
MARK(head(X)) → MARK(X)
MARK(afterNth(X1, X2)) → ACTIVE(afterNth(mark(X1), mark(X2)))
ACTIVE(U81(tt, V1)) → MARK(U82(isPLNat(V1)))
MARK(afterNth(X1, X2)) → MARK(X1)
MARK(afterNth(X1, X2)) → MARK(X2)
MARK(U181(X1, X2)) → ACTIVE(U181(mark(X1), X2))
ACTIVE(U91(tt, V1)) → MARK(U92(isLNat(V1)))
MARK(U181(X1, X2)) → MARK(X1)
MARK(U191(X1, X2)) → ACTIVE(U191(mark(X1), X2))
ACTIVE(afterNth(N, XS)) → MARK(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
MARK(U191(X1, X2)) → MARK(X1)
MARK(pair(X1, X2)) → ACTIVE(pair(mark(X1), mark(X2)))
ACTIVE(and(tt, X)) → MARK(X)
MARK(pair(X1, X2)) → MARK(X1)
MARK(pair(X1, X2)) → MARK(X2)
MARK(U201(X1, X2, X3, X4)) → ACTIVE(U201(mark(X1), X2, X3, X4))
ACTIVE(fst(pair(X, Y))) → MARK(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
MARK(U201(X1, X2, X3, X4)) → MARK(X1)
MARK(U202(X1, X2)) → ACTIVE(U202(mark(X1), X2))
ACTIVE(head(cons(N, XS))) → MARK(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
MARK(U202(X1, X2)) → MARK(X1)
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
ACTIVE(isLNat(afterNth(V1, V2))) → MARK(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U21(X1, X2)) → MARK(X1)
MARK(U211(X1, X2)) → ACTIVE(U211(mark(X1), X2))
ACTIVE(isLNat(cons(V1, V2))) → MARK(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U211(X1, X2)) → MARK(X1)
MARK(U221(X1, X2, X3)) → ACTIVE(U221(mark(X1), X2, X3))
ACTIVE(isLNat(fst(V1))) → MARK(U61(isPLNatKind(V1), V1))
MARK(U221(X1, X2, X3)) → MARK(X1)
MARK(fst(X)) → ACTIVE(fst(mark(X)))
ACTIVE(isLNat(natsFrom(V1))) → MARK(U71(isNaturalKind(V1), V1))
MARK(fst(X)) → MARK(X)
MARK(U31(X1, X2)) → ACTIVE(U31(mark(X1), X2))
ACTIVE(isLNat(snd(V1))) → MARK(U81(isPLNatKind(V1), V1))
MARK(U31(X1, X2)) → MARK(X1)
MARK(U41(X1, X2, X3)) → ACTIVE(U41(mark(X1), X2, X3))
ACTIVE(isLNat(tail(V1))) → MARK(U91(isLNatKind(V1), V1))
MARK(U41(X1, X2, X3)) → MARK(X1)
MARK(U42(X1, X2)) → ACTIVE(U42(mark(X1), X2))
ACTIVE(isLNat(take(V1, V2))) → MARK(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U42(X1, X2)) → MARK(X1)
MARK(U43(X)) → ACTIVE(U43(mark(X)))
ACTIVE(isLNatKind(afterNth(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U43(X)) → MARK(X)
MARK(U51(X1, X2, X3)) → ACTIVE(U51(mark(X1), X2, X3))
ACTIVE(isLNatKind(cons(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U51(X1, X2, X3)) → MARK(X1)
MARK(U52(X1, X2)) → ACTIVE(U52(mark(X1), X2))
ACTIVE(isLNatKind(fst(V1))) → MARK(isPLNatKind(V1))
MARK(U52(X1, X2)) → MARK(X1)
MARK(U53(X)) → ACTIVE(U53(mark(X)))
ACTIVE(isLNatKind(natsFrom(V1))) → MARK(isNaturalKind(V1))
MARK(U53(X)) → MARK(X)
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isLNatKind(snd(V1))) → MARK(isPLNatKind(V1))
MARK(U61(X1, X2)) → MARK(X1)
MARK(U62(X)) → ACTIVE(U62(mark(X)))
ACTIVE(isLNatKind(tail(V1))) → MARK(isLNatKind(V1))
MARK(U62(X)) → MARK(X)
MARK(isPLNat(X)) → ACTIVE(isPLNat(X))
ACTIVE(isLNatKind(take(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U71(X1, X2)) → ACTIVE(U71(mark(X1), X2))
ACTIVE(isNatural(head(V1))) → MARK(U111(isLNatKind(V1), V1))
MARK(U71(X1, X2)) → MARK(X1)
MARK(U72(X)) → ACTIVE(U72(mark(X)))
ACTIVE(isNatural(s(V1))) → MARK(U121(isNaturalKind(V1), V1))
MARK(U72(X)) → MARK(X)
MARK(U81(X1, X2)) → ACTIVE(U81(mark(X1), X2))
ACTIVE(isNatural(sel(V1, V2))) → MARK(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U81(X1, X2)) → MARK(X1)
MARK(U82(X)) → ACTIVE(U82(mark(X)))
ACTIVE(isNaturalKind(head(V1))) → MARK(isLNatKind(V1))
MARK(U82(X)) → MARK(X)
MARK(U91(X1, X2)) → ACTIVE(U91(mark(X1), X2))
ACTIVE(isNaturalKind(s(V1))) → MARK(isNaturalKind(V1))
MARK(U91(X1, X2)) → MARK(X1)
MARK(U92(X)) → ACTIVE(U92(mark(X)))
ACTIVE(isNaturalKind(sel(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U92(X)) → MARK(X)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
ACTIVE(isPLNat(pair(V1, V2))) → MARK(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
MARK(and(X1, X2)) → MARK(X1)
MARK(isNaturalKind(X)) → ACTIVE(isNaturalKind(X))
ACTIVE(isPLNat(splitAt(V1, V2))) → MARK(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(isLNatKind(X)) → ACTIVE(isLNatKind(X))
ACTIVE(isPLNatKind(pair(V1, V2))) → MARK(and(isLNatKind(V1), isLNatKind(V2)))
MARK(isPLNatKind(X)) → ACTIVE(isPLNatKind(X))
ACTIVE(isPLNatKind(splitAt(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(tail(X)) → ACTIVE(tail(mark(X)))
ACTIVE(natsFrom(N)) → MARK(U161(and(isNatural(N), isNaturalKind(N)), N))
MARK(tail(X)) → MARK(X)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
ACTIVE(sel(N, XS)) → MARK(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
MARK(sel(X1, X2)) → ACTIVE(sel(mark(X1), mark(X2)))
ACTIVE(snd(pair(X, Y))) → MARK(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
MARK(sel(X1, X2)) → MARK(X1)
MARK(sel(X1, X2)) → MARK(X2)
ACTIVE(splitAt(0, XS)) → MARK(U191(and(isLNat(XS), isLNatKind(XS)), XS))
ACTIVE(splitAt(s(N), cons(X, XS))) → MARK(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
ACTIVE(tail(cons(N, XS))) → MARK(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
ACTIVE(take(N, XS)) → MARK(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U103(X)) → ACTIVE(U103(mark(X)))
MARK(U112(X)) → ACTIVE(U112(mark(X)))
MARK(U122(X)) → ACTIVE(U122(mark(X)))
MARK(U133(X)) → ACTIVE(U133(mark(X)))
MARK(U143(X)) → ACTIVE(U143(mark(X)))
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(pair(X1, X2)) → ACTIVE(pair(mark(X1), mark(X2)))
MARK(U43(X)) → ACTIVE(U43(mark(X)))
MARK(U82(X)) → ACTIVE(U82(mark(X)))
MARK(U92(X)) → ACTIVE(U92(mark(X)))
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U122 > tt > U112 > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U122 > tt > s > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U122 > tt > pair > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U122 > tt > nil > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U133 > tt > U112 > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U133 > tt > s > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U133 > tt > pair > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U133 > tt > nil > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U143 > tt > U112 > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U143 > tt > s > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U143 > tt > pair > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U143 > tt > nil > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U82 > tt > U112 > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U82 > tt > s > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U82 > tt > pair > [mark1, U103, U43, U92]
[MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U121, U131, U132, U141, U142, U151, U152, U153, U161, cons, natsFrom, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U51, U52, U53, U61, U62, isPLNat, U71, U72, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel, 0] > U82 > tt > nil > [mark1, U103, U43, U92]
U141: []
isNaturalKind: []
U92: []
U31: []
U42: []
U152: []
mark1: [1]
U11: []
natsFrom: []
afterNth: []
tt: []
cons: []
U121: []
U41: []
and: []
U81: []
isPLNatKind: []
nil: []
U122: []
MARK: []
U51: []
isPLNat: []
fst: []
U181: []
snd: []
U142: []
tail: []
U151: []
pair: []
isNatural: []
U133: []
U112: []
U211: []
U111: []
U143: []
isLNatKind: []
U61: []
U72: []
U82: []
head: []
U153: []
U171: []
U161: []
U43: []
U21: []
sel: []
U62: []
U201: []
U91: []
U52: []
U53: []
isLNat: []
U132: []
U202: []
s: []
U131: []
U71: []
0: []
take: []
U191: []
U103: []
splitAt: []
U102: []
U101: []
U221: []
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U43(active(X)) → U43(X)
U43(mark(X)) → U43(X)
U42(X1, active(X2)) → U42(X1, X2)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
and(X1, mark(X2)) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
U92(active(X)) → U92(X)
U92(mark(X)) → U92(X)
U82(active(X)) → U82(X)
U82(mark(X)) → U82(X)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U81(mark(X1), X2) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U72(active(X)) → U72(X)
U72(mark(X)) → U72(X)
isPLNat(active(X)) → isPLNat(X)
isPLNat(mark(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U62(active(X)) → U62(X)
U62(mark(X)) → U62(X)
U53(active(X)) → U53(X)
U53(mark(X)) → U53(X)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
head(active(X)) → head(X)
head(mark(X)) → head(X)
U181(mark(X1), X2) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
s(active(X)) → s(X)
s(mark(X)) → s(X)
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
natsFrom(active(X)) → natsFrom(X)
natsFrom(mark(X)) → natsFrom(X)
U152(X1, mark(X2)) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(mark(X1), X2) → U152(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, X2)
U153(active(X)) → U153(X)
U153(mark(X)) → U153(X)
U211(X1, active(X2)) → U211(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U202(X1, active(X2)) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(mark(X1), X2) → U202(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
snd(active(X)) → snd(X)
snd(mark(X)) → snd(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U103(active(X)) → U103(X)
U103(mark(X)) → U103(X)
isNatural(active(X)) → isNatural(X)
isNatural(mark(X)) → isNatural(X)
U102(X1, active(X2)) → U102(X1, X2)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
isLNat(active(X)) → isLNat(X)
isLNat(mark(X)) → isLNat(X)
U142(X1, mark(X2)) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(mark(X1), X2) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U122(active(X)) → U122(X)
U122(mark(X)) → U122(X)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U133(active(X)) → U133(X)
U133(mark(X)) → U133(X)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U132(mark(X1), X2) → U132(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
take(X1, mark(X2)) → take(X1, X2)
take(mark(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
MARK(U101(X1, X2, X3)) → ACTIVE(U101(mark(X1), X2, X3))
ACTIVE(U101(tt, V1, V2)) → MARK(U102(isNatural(V1), V2))
MARK(U101(X1, X2, X3)) → MARK(X1)
MARK(U102(X1, X2)) → ACTIVE(U102(mark(X1), X2))
ACTIVE(U102(tt, V2)) → MARK(U103(isLNat(V2)))
MARK(U102(X1, X2)) → MARK(X1)
MARK(isNatural(X)) → ACTIVE(isNatural(X))
ACTIVE(U11(tt, N, XS)) → MARK(snd(splitAt(N, XS)))
ACTIVE(U111(tt, V1)) → MARK(U112(isLNat(V1)))
MARK(U103(X)) → MARK(X)
MARK(isLNat(X)) → ACTIVE(isLNat(X))
ACTIVE(U121(tt, V1)) → MARK(U122(isNatural(V1)))
MARK(U11(X1, X2, X3)) → ACTIVE(U11(mark(X1), X2, X3))
ACTIVE(U131(tt, V1, V2)) → MARK(U132(isNatural(V1), V2))
MARK(U11(X1, X2, X3)) → MARK(X1)
MARK(snd(X)) → ACTIVE(snd(mark(X)))
ACTIVE(U132(tt, V2)) → MARK(U133(isLNat(V2)))
MARK(snd(X)) → MARK(X)
MARK(splitAt(X1, X2)) → ACTIVE(splitAt(mark(X1), mark(X2)))
ACTIVE(U141(tt, V1, V2)) → MARK(U142(isLNat(V1), V2))
MARK(splitAt(X1, X2)) → MARK(X1)
MARK(splitAt(X1, X2)) → MARK(X2)
MARK(U111(X1, X2)) → ACTIVE(U111(mark(X1), X2))
ACTIVE(U142(tt, V2)) → MARK(U143(isLNat(V2)))
MARK(U111(X1, X2)) → MARK(X1)
ACTIVE(U151(tt, V1, V2)) → MARK(U152(isNatural(V1), V2))
MARK(U112(X)) → MARK(X)
MARK(U121(X1, X2)) → ACTIVE(U121(mark(X1), X2))
ACTIVE(U152(tt, V2)) → MARK(U153(isLNat(V2)))
MARK(U121(X1, X2)) → MARK(X1)
ACTIVE(U161(tt, N)) → MARK(cons(N, natsFrom(s(N))))
MARK(U122(X)) → MARK(X)
MARK(U131(X1, X2, X3)) → ACTIVE(U131(mark(X1), X2, X3))
ACTIVE(U171(tt, N, XS)) → MARK(head(afterNth(N, XS)))
MARK(U131(X1, X2, X3)) → MARK(X1)
MARK(U132(X1, X2)) → ACTIVE(U132(mark(X1), X2))
ACTIVE(U181(tt, Y)) → MARK(Y)
MARK(U132(X1, X2)) → MARK(X1)
ACTIVE(U191(tt, XS)) → MARK(pair(nil, XS))
MARK(U133(X)) → MARK(X)
MARK(U141(X1, X2, X3)) → ACTIVE(U141(mark(X1), X2, X3))
ACTIVE(U201(tt, N, X, XS)) → MARK(U202(splitAt(N, XS), X))
MARK(U141(X1, X2, X3)) → MARK(X1)
MARK(U142(X1, X2)) → ACTIVE(U142(mark(X1), X2))
ACTIVE(U202(pair(YS, ZS), X)) → MARK(pair(cons(X, YS), ZS))
MARK(U142(X1, X2)) → MARK(X1)
ACTIVE(U21(tt, X)) → MARK(X)
MARK(U143(X)) → MARK(X)
MARK(U151(X1, X2, X3)) → ACTIVE(U151(mark(X1), X2, X3))
ACTIVE(U211(tt, XS)) → MARK(XS)
MARK(U151(X1, X2, X3)) → MARK(X1)
MARK(U152(X1, X2)) → ACTIVE(U152(mark(X1), X2))
ACTIVE(U221(tt, N, XS)) → MARK(fst(splitAt(N, XS)))
MARK(U152(X1, X2)) → MARK(X1)
MARK(U153(X)) → ACTIVE(U153(mark(X)))
ACTIVE(U31(tt, N)) → MARK(N)
MARK(U153(X)) → MARK(X)
MARK(U161(X1, X2)) → ACTIVE(U161(mark(X1), X2))
ACTIVE(U41(tt, V1, V2)) → MARK(U42(isNatural(V1), V2))
MARK(U161(X1, X2)) → MARK(X1)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U42(tt, V2)) → MARK(U43(isLNat(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(natsFrom(X)) → ACTIVE(natsFrom(mark(X)))
ACTIVE(U51(tt, V1, V2)) → MARK(U52(isNatural(V1), V2))
MARK(natsFrom(X)) → MARK(X)
ACTIVE(U52(tt, V2)) → MARK(U53(isLNat(V2)))
MARK(s(X)) → MARK(X)
MARK(U171(X1, X2, X3)) → ACTIVE(U171(mark(X1), X2, X3))
ACTIVE(U61(tt, V1)) → MARK(U62(isPLNat(V1)))
MARK(U171(X1, X2, X3)) → MARK(X1)
MARK(head(X)) → ACTIVE(head(mark(X)))
ACTIVE(U71(tt, V1)) → MARK(U72(isNatural(V1)))
MARK(head(X)) → MARK(X)
MARK(afterNth(X1, X2)) → ACTIVE(afterNth(mark(X1), mark(X2)))
ACTIVE(U81(tt, V1)) → MARK(U82(isPLNat(V1)))
MARK(afterNth(X1, X2)) → MARK(X1)
MARK(afterNth(X1, X2)) → MARK(X2)
MARK(U181(X1, X2)) → ACTIVE(U181(mark(X1), X2))
ACTIVE(U91(tt, V1)) → MARK(U92(isLNat(V1)))
MARK(U181(X1, X2)) → MARK(X1)
MARK(U191(X1, X2)) → ACTIVE(U191(mark(X1), X2))
ACTIVE(afterNth(N, XS)) → MARK(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
MARK(U191(X1, X2)) → MARK(X1)
ACTIVE(and(tt, X)) → MARK(X)
MARK(pair(X1, X2)) → MARK(X1)
MARK(pair(X1, X2)) → MARK(X2)
MARK(U201(X1, X2, X3, X4)) → ACTIVE(U201(mark(X1), X2, X3, X4))
ACTIVE(fst(pair(X, Y))) → MARK(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
MARK(U201(X1, X2, X3, X4)) → MARK(X1)
MARK(U202(X1, X2)) → ACTIVE(U202(mark(X1), X2))
ACTIVE(head(cons(N, XS))) → MARK(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
MARK(U202(X1, X2)) → MARK(X1)
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
ACTIVE(isLNat(afterNth(V1, V2))) → MARK(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U21(X1, X2)) → MARK(X1)
MARK(U211(X1, X2)) → ACTIVE(U211(mark(X1), X2))
ACTIVE(isLNat(cons(V1, V2))) → MARK(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U211(X1, X2)) → MARK(X1)
MARK(U221(X1, X2, X3)) → ACTIVE(U221(mark(X1), X2, X3))
ACTIVE(isLNat(fst(V1))) → MARK(U61(isPLNatKind(V1), V1))
MARK(U221(X1, X2, X3)) → MARK(X1)
MARK(fst(X)) → ACTIVE(fst(mark(X)))
ACTIVE(isLNat(natsFrom(V1))) → MARK(U71(isNaturalKind(V1), V1))
MARK(fst(X)) → MARK(X)
MARK(U31(X1, X2)) → ACTIVE(U31(mark(X1), X2))
ACTIVE(isLNat(snd(V1))) → MARK(U81(isPLNatKind(V1), V1))
MARK(U31(X1, X2)) → MARK(X1)
MARK(U41(X1, X2, X3)) → ACTIVE(U41(mark(X1), X2, X3))
ACTIVE(isLNat(tail(V1))) → MARK(U91(isLNatKind(V1), V1))
MARK(U41(X1, X2, X3)) → MARK(X1)
MARK(U42(X1, X2)) → ACTIVE(U42(mark(X1), X2))
ACTIVE(isLNat(take(V1, V2))) → MARK(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U42(X1, X2)) → MARK(X1)
ACTIVE(isLNatKind(afterNth(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U43(X)) → MARK(X)
MARK(U51(X1, X2, X3)) → ACTIVE(U51(mark(X1), X2, X3))
ACTIVE(isLNatKind(cons(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U51(X1, X2, X3)) → MARK(X1)
MARK(U52(X1, X2)) → ACTIVE(U52(mark(X1), X2))
ACTIVE(isLNatKind(fst(V1))) → MARK(isPLNatKind(V1))
MARK(U52(X1, X2)) → MARK(X1)
MARK(U53(X)) → ACTIVE(U53(mark(X)))
ACTIVE(isLNatKind(natsFrom(V1))) → MARK(isNaturalKind(V1))
MARK(U53(X)) → MARK(X)
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isLNatKind(snd(V1))) → MARK(isPLNatKind(V1))
MARK(U61(X1, X2)) → MARK(X1)
MARK(U62(X)) → ACTIVE(U62(mark(X)))
ACTIVE(isLNatKind(tail(V1))) → MARK(isLNatKind(V1))
MARK(U62(X)) → MARK(X)
MARK(isPLNat(X)) → ACTIVE(isPLNat(X))
ACTIVE(isLNatKind(take(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U71(X1, X2)) → ACTIVE(U71(mark(X1), X2))
ACTIVE(isNatural(head(V1))) → MARK(U111(isLNatKind(V1), V1))
MARK(U71(X1, X2)) → MARK(X1)
MARK(U72(X)) → ACTIVE(U72(mark(X)))
ACTIVE(isNatural(s(V1))) → MARK(U121(isNaturalKind(V1), V1))
MARK(U72(X)) → MARK(X)
MARK(U81(X1, X2)) → ACTIVE(U81(mark(X1), X2))
ACTIVE(isNatural(sel(V1, V2))) → MARK(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U81(X1, X2)) → MARK(X1)
ACTIVE(isNaturalKind(head(V1))) → MARK(isLNatKind(V1))
MARK(U82(X)) → MARK(X)
MARK(U91(X1, X2)) → ACTIVE(U91(mark(X1), X2))
ACTIVE(isNaturalKind(s(V1))) → MARK(isNaturalKind(V1))
MARK(U91(X1, X2)) → MARK(X1)
ACTIVE(isNaturalKind(sel(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U92(X)) → MARK(X)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
ACTIVE(isPLNat(pair(V1, V2))) → MARK(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
MARK(and(X1, X2)) → MARK(X1)
MARK(isNaturalKind(X)) → ACTIVE(isNaturalKind(X))
ACTIVE(isPLNat(splitAt(V1, V2))) → MARK(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(isLNatKind(X)) → ACTIVE(isLNatKind(X))
ACTIVE(isPLNatKind(pair(V1, V2))) → MARK(and(isLNatKind(V1), isLNatKind(V2)))
MARK(isPLNatKind(X)) → ACTIVE(isPLNatKind(X))
ACTIVE(isPLNatKind(splitAt(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(tail(X)) → ACTIVE(tail(mark(X)))
ACTIVE(natsFrom(N)) → MARK(U161(and(isNatural(N), isNaturalKind(N)), N))
MARK(tail(X)) → MARK(X)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
ACTIVE(sel(N, XS)) → MARK(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
MARK(sel(X1, X2)) → ACTIVE(sel(mark(X1), mark(X2)))
ACTIVE(snd(pair(X, Y))) → MARK(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
MARK(sel(X1, X2)) → MARK(X1)
MARK(sel(X1, X2)) → MARK(X2)
ACTIVE(splitAt(0, XS)) → MARK(U191(and(isLNat(XS), isLNatKind(XS)), XS))
ACTIVE(splitAt(s(N), cons(X, XS))) → MARK(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
ACTIVE(tail(cons(N, XS))) → MARK(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
ACTIVE(take(N, XS)) → MARK(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(U153(X)) → ACTIVE(U153(mark(X)))
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
MARK(U53(X)) → ACTIVE(U53(mark(X)))
MARK(U62(X)) → ACTIVE(U62(mark(X)))
MARK(U72(X)) → ACTIVE(U72(mark(X)))
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U1221 > active1 > nil > [mark1, U153] > U103 > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U1221 > active1 > nil > [mark1, U153] > cons > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U1221 > active1 > nil > [mark1, U153] > U92 > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U1221 > active1 > U53 > [mark1, U153] > U103 > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U1221 > active1 > U53 > [mark1, U153] > cons > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U1221 > active1 > U53 > [mark1, U153] > U92 > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U62 > active1 > nil > [mark1, U153] > U103 > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U62 > active1 > nil > [mark1, U153] > cons > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U62 > active1 > nil > [mark1, U153] > U92 > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U62 > active1 > U53 > [mark1, U153] > U103 > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U62 > active1 > U53 > [mark1, U153] > cons > [tt, U143, pair2, U72]
U82 > [MARK, U101, U102, isNatural, isLNat, U11, snd, splitAt, U111, U112, U121, U131, U132, U133, U141, U142, U151, U152, U161, natsFrom, s1, U171, head, afterNth, U181, U191, U201, U202, U21, U211, U221, fst, U31, U41, U42, U43, U51, U52, U61, isPLNat, U71, U81, U91, and, isNaturalKind, isLNatKind, isPLNatKind, tail, take, sel] > U62 > active1 > U53 > [mark1, U153] > U92 > [tt, U143, pair2, U72]
0 > [mark1, U153] > U103 > [tt, U143, pair2, U72]
0 > [mark1, U153] > cons > [tt, U143, pair2, U72]
0 > [mark1, U153] > U92 > [tt, U143, pair2, U72]
U141: []
isNaturalKind: []
U92: []
U31: []
U42: []
U152: []
mark1: [1]
U11: []
natsFrom: []
afterNth: []
active1: [1]
tt: []
cons: []
U121: []
U41: []
pair2: [1,2]
and: []
U81: []
isPLNatKind: []
nil: []
MARK: []
U51: []
isPLNat: []
fst: []
U181: []
snd: []
U142: []
tail: []
U151: []
isNatural: []
U133: []
U112: []
U211: []
U111: []
U1221: [1]
U143: []
isLNatKind: []
U61: []
U72: []
U82: []
head: []
U153: []
s1: [1]
U171: []
U161: []
U43: []
U21: []
sel: []
U62: []
U201: []
U91: []
U52: []
U53: []
isLNat: []
U132: []
U202: []
U131: []
U71: []
0: []
take: []
U191: []
U103: []
splitAt: []
U102: []
U101: []
U221: []
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U42(X1, active(X2)) → U42(X1, X2)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
and(X1, mark(X2)) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
and(mark(X1), X2) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U81(mark(X1), X2) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U72(active(X)) → U72(X)
U72(mark(X)) → U72(X)
isPLNat(active(X)) → isPLNat(X)
isPLNat(mark(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U62(active(X)) → U62(X)
U62(mark(X)) → U62(X)
U53(active(X)) → U53(X)
U53(mark(X)) → U53(X)
U61(active(X1), X2) → U61(X1, X2)
U61(X1, mark(X2)) → U61(X1, X2)
U61(mark(X1), X2) → U61(X1, X2)
U61(X1, active(X2)) → U61(X1, X2)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
head(active(X)) → head(X)
head(mark(X)) → head(X)
U181(mark(X1), X2) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
cons(X1, active(X2)) → cons(X1, X2)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
natsFrom(active(X)) → natsFrom(X)
natsFrom(mark(X)) → natsFrom(X)
U152(X1, mark(X2)) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(mark(X1), X2) → U152(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, X2)
U153(active(X)) → U153(X)
U153(mark(X)) → U153(X)
U211(X1, active(X2)) → U211(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U202(X1, active(X2)) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(mark(X1), X2) → U202(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
snd(active(X)) → snd(X)
snd(mark(X)) → snd(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
isNatural(active(X)) → isNatural(X)
isNatural(mark(X)) → isNatural(X)
U102(X1, active(X2)) → U102(X1, X2)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
isLNat(active(X)) → isLNat(X)
isLNat(mark(X)) → isLNat(X)
U142(X1, mark(X2)) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(mark(X1), X2) → U142(X1, X2)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U132(mark(X1), X2) → U132(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
take(X1, mark(X2)) → take(X1, X2)
take(mark(X1), X2) → take(X1, X2)
take(X1, active(X2)) → take(X1, X2)
take(active(X1), X2) → take(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
MARK(U101(X1, X2, X3)) → ACTIVE(U101(mark(X1), X2, X3))
ACTIVE(U101(tt, V1, V2)) → MARK(U102(isNatural(V1), V2))
MARK(U101(X1, X2, X3)) → MARK(X1)
MARK(U102(X1, X2)) → ACTIVE(U102(mark(X1), X2))
ACTIVE(U102(tt, V2)) → MARK(U103(isLNat(V2)))
MARK(U102(X1, X2)) → MARK(X1)
MARK(isNatural(X)) → ACTIVE(isNatural(X))
ACTIVE(U11(tt, N, XS)) → MARK(snd(splitAt(N, XS)))
ACTIVE(U111(tt, V1)) → MARK(U112(isLNat(V1)))
MARK(U103(X)) → MARK(X)
MARK(isLNat(X)) → ACTIVE(isLNat(X))
ACTIVE(U121(tt, V1)) → MARK(U122(isNatural(V1)))
MARK(U11(X1, X2, X3)) → ACTIVE(U11(mark(X1), X2, X3))
ACTIVE(U131(tt, V1, V2)) → MARK(U132(isNatural(V1), V2))
MARK(U11(X1, X2, X3)) → MARK(X1)
MARK(snd(X)) → ACTIVE(snd(mark(X)))
ACTIVE(U132(tt, V2)) → MARK(U133(isLNat(V2)))
MARK(snd(X)) → MARK(X)
MARK(splitAt(X1, X2)) → ACTIVE(splitAt(mark(X1), mark(X2)))
ACTIVE(U141(tt, V1, V2)) → MARK(U142(isLNat(V1), V2))
MARK(splitAt(X1, X2)) → MARK(X1)
MARK(splitAt(X1, X2)) → MARK(X2)
MARK(U111(X1, X2)) → ACTIVE(U111(mark(X1), X2))
ACTIVE(U142(tt, V2)) → MARK(U143(isLNat(V2)))
MARK(U111(X1, X2)) → MARK(X1)
ACTIVE(U151(tt, V1, V2)) → MARK(U152(isNatural(V1), V2))
MARK(U112(X)) → MARK(X)
MARK(U121(X1, X2)) → ACTIVE(U121(mark(X1), X2))
ACTIVE(U152(tt, V2)) → MARK(U153(isLNat(V2)))
MARK(U121(X1, X2)) → MARK(X1)
ACTIVE(U161(tt, N)) → MARK(cons(N, natsFrom(s(N))))
MARK(U122(X)) → MARK(X)
MARK(U131(X1, X2, X3)) → ACTIVE(U131(mark(X1), X2, X3))
ACTIVE(U171(tt, N, XS)) → MARK(head(afterNth(N, XS)))
MARK(U131(X1, X2, X3)) → MARK(X1)
MARK(U132(X1, X2)) → ACTIVE(U132(mark(X1), X2))
ACTIVE(U181(tt, Y)) → MARK(Y)
MARK(U132(X1, X2)) → MARK(X1)
ACTIVE(U191(tt, XS)) → MARK(pair(nil, XS))
MARK(U133(X)) → MARK(X)
MARK(U141(X1, X2, X3)) → ACTIVE(U141(mark(X1), X2, X3))
ACTIVE(U201(tt, N, X, XS)) → MARK(U202(splitAt(N, XS), X))
MARK(U141(X1, X2, X3)) → MARK(X1)
MARK(U142(X1, X2)) → ACTIVE(U142(mark(X1), X2))
ACTIVE(U202(pair(YS, ZS), X)) → MARK(pair(cons(X, YS), ZS))
MARK(U142(X1, X2)) → MARK(X1)
ACTIVE(U21(tt, X)) → MARK(X)
MARK(U143(X)) → MARK(X)
MARK(U151(X1, X2, X3)) → ACTIVE(U151(mark(X1), X2, X3))
ACTIVE(U211(tt, XS)) → MARK(XS)
MARK(U151(X1, X2, X3)) → MARK(X1)
MARK(U152(X1, X2)) → ACTIVE(U152(mark(X1), X2))
ACTIVE(U221(tt, N, XS)) → MARK(fst(splitAt(N, XS)))
MARK(U152(X1, X2)) → MARK(X1)
ACTIVE(U31(tt, N)) → MARK(N)
MARK(U153(X)) → MARK(X)
MARK(U161(X1, X2)) → ACTIVE(U161(mark(X1), X2))
ACTIVE(U41(tt, V1, V2)) → MARK(U42(isNatural(V1), V2))
MARK(U161(X1, X2)) → MARK(X1)
ACTIVE(U42(tt, V2)) → MARK(U43(isLNat(V2)))
MARK(cons(X1, X2)) → MARK(X1)
MARK(natsFrom(X)) → ACTIVE(natsFrom(mark(X)))
ACTIVE(U51(tt, V1, V2)) → MARK(U52(isNatural(V1), V2))
MARK(natsFrom(X)) → MARK(X)
ACTIVE(U52(tt, V2)) → MARK(U53(isLNat(V2)))
MARK(s(X)) → MARK(X)
MARK(U171(X1, X2, X3)) → ACTIVE(U171(mark(X1), X2, X3))
ACTIVE(U61(tt, V1)) → MARK(U62(isPLNat(V1)))
MARK(U171(X1, X2, X3)) → MARK(X1)
MARK(head(X)) → ACTIVE(head(mark(X)))
ACTIVE(U71(tt, V1)) → MARK(U72(isNatural(V1)))
MARK(head(X)) → MARK(X)
MARK(afterNth(X1, X2)) → ACTIVE(afterNth(mark(X1), mark(X2)))
ACTIVE(U81(tt, V1)) → MARK(U82(isPLNat(V1)))
MARK(afterNth(X1, X2)) → MARK(X1)
MARK(afterNth(X1, X2)) → MARK(X2)
MARK(U181(X1, X2)) → ACTIVE(U181(mark(X1), X2))
ACTIVE(U91(tt, V1)) → MARK(U92(isLNat(V1)))
MARK(U181(X1, X2)) → MARK(X1)
MARK(U191(X1, X2)) → ACTIVE(U191(mark(X1), X2))
ACTIVE(afterNth(N, XS)) → MARK(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
MARK(U191(X1, X2)) → MARK(X1)
ACTIVE(and(tt, X)) → MARK(X)
MARK(pair(X1, X2)) → MARK(X1)
MARK(pair(X1, X2)) → MARK(X2)
MARK(U201(X1, X2, X3, X4)) → ACTIVE(U201(mark(X1), X2, X3, X4))
ACTIVE(fst(pair(X, Y))) → MARK(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
MARK(U201(X1, X2, X3, X4)) → MARK(X1)
MARK(U202(X1, X2)) → ACTIVE(U202(mark(X1), X2))
ACTIVE(head(cons(N, XS))) → MARK(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
MARK(U202(X1, X2)) → MARK(X1)
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
ACTIVE(isLNat(afterNth(V1, V2))) → MARK(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U21(X1, X2)) → MARK(X1)
MARK(U211(X1, X2)) → ACTIVE(U211(mark(X1), X2))
ACTIVE(isLNat(cons(V1, V2))) → MARK(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U211(X1, X2)) → MARK(X1)
MARK(U221(X1, X2, X3)) → ACTIVE(U221(mark(X1), X2, X3))
ACTIVE(isLNat(fst(V1))) → MARK(U61(isPLNatKind(V1), V1))
MARK(U221(X1, X2, X3)) → MARK(X1)
MARK(fst(X)) → ACTIVE(fst(mark(X)))
ACTIVE(isLNat(natsFrom(V1))) → MARK(U71(isNaturalKind(V1), V1))
MARK(fst(X)) → MARK(X)
MARK(U31(X1, X2)) → ACTIVE(U31(mark(X1), X2))
ACTIVE(isLNat(snd(V1))) → MARK(U81(isPLNatKind(V1), V1))
MARK(U31(X1, X2)) → MARK(X1)
MARK(U41(X1, X2, X3)) → ACTIVE(U41(mark(X1), X2, X3))
ACTIVE(isLNat(tail(V1))) → MARK(U91(isLNatKind(V1), V1))
MARK(U41(X1, X2, X3)) → MARK(X1)
MARK(U42(X1, X2)) → ACTIVE(U42(mark(X1), X2))
ACTIVE(isLNat(take(V1, V2))) → MARK(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U42(X1, X2)) → MARK(X1)
ACTIVE(isLNatKind(afterNth(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U43(X)) → MARK(X)
MARK(U51(X1, X2, X3)) → ACTIVE(U51(mark(X1), X2, X3))
ACTIVE(isLNatKind(cons(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U51(X1, X2, X3)) → MARK(X1)
MARK(U52(X1, X2)) → ACTIVE(U52(mark(X1), X2))
ACTIVE(isLNatKind(fst(V1))) → MARK(isPLNatKind(V1))
MARK(U52(X1, X2)) → MARK(X1)
ACTIVE(isLNatKind(natsFrom(V1))) → MARK(isNaturalKind(V1))
MARK(U53(X)) → MARK(X)
MARK(U61(X1, X2)) → ACTIVE(U61(mark(X1), X2))
ACTIVE(isLNatKind(snd(V1))) → MARK(isPLNatKind(V1))
MARK(U61(X1, X2)) → MARK(X1)
ACTIVE(isLNatKind(tail(V1))) → MARK(isLNatKind(V1))
MARK(U62(X)) → MARK(X)
MARK(isPLNat(X)) → ACTIVE(isPLNat(X))
ACTIVE(isLNatKind(take(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U71(X1, X2)) → ACTIVE(U71(mark(X1), X2))
ACTIVE(isNatural(head(V1))) → MARK(U111(isLNatKind(V1), V1))
MARK(U71(X1, X2)) → MARK(X1)
ACTIVE(isNatural(s(V1))) → MARK(U121(isNaturalKind(V1), V1))
MARK(U72(X)) → MARK(X)
MARK(U81(X1, X2)) → ACTIVE(U81(mark(X1), X2))
ACTIVE(isNatural(sel(V1, V2))) → MARK(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(U81(X1, X2)) → MARK(X1)
ACTIVE(isNaturalKind(head(V1))) → MARK(isLNatKind(V1))
MARK(U82(X)) → MARK(X)
MARK(U91(X1, X2)) → ACTIVE(U91(mark(X1), X2))
ACTIVE(isNaturalKind(s(V1))) → MARK(isNaturalKind(V1))
MARK(U91(X1, X2)) → MARK(X1)
ACTIVE(isNaturalKind(sel(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(U92(X)) → MARK(X)
MARK(and(X1, X2)) → ACTIVE(and(mark(X1), X2))
ACTIVE(isPLNat(pair(V1, V2))) → MARK(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
MARK(and(X1, X2)) → MARK(X1)
MARK(isNaturalKind(X)) → ACTIVE(isNaturalKind(X))
ACTIVE(isPLNat(splitAt(V1, V2))) → MARK(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
MARK(isLNatKind(X)) → ACTIVE(isLNatKind(X))
ACTIVE(isPLNatKind(pair(V1, V2))) → MARK(and(isLNatKind(V1), isLNatKind(V2)))
MARK(isPLNatKind(X)) → ACTIVE(isPLNatKind(X))
ACTIVE(isPLNatKind(splitAt(V1, V2))) → MARK(and(isNaturalKind(V1), isLNatKind(V2)))
MARK(tail(X)) → ACTIVE(tail(mark(X)))
ACTIVE(natsFrom(N)) → MARK(U161(and(isNatural(N), isNaturalKind(N)), N))
MARK(tail(X)) → MARK(X)
MARK(take(X1, X2)) → ACTIVE(take(mark(X1), mark(X2)))
ACTIVE(sel(N, XS)) → MARK(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
MARK(take(X1, X2)) → MARK(X1)
MARK(take(X1, X2)) → MARK(X2)
MARK(sel(X1, X2)) → ACTIVE(sel(mark(X1), mark(X2)))
ACTIVE(snd(pair(X, Y))) → MARK(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
MARK(sel(X1, X2)) → MARK(X1)
MARK(sel(X1, X2)) → MARK(X2)
ACTIVE(splitAt(0, XS)) → MARK(U191(and(isLNat(XS), isLNatKind(XS)), XS))
ACTIVE(splitAt(s(N), cons(X, XS))) → MARK(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
ACTIVE(tail(cons(N, XS))) → MARK(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
ACTIVE(take(N, XS)) → MARK(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(U101(tt, V1, V2)) → mark(U102(isNatural(V1), V2))
active(U102(tt, V2)) → mark(U103(isLNat(V2)))
active(U103(tt)) → mark(tt)
active(U11(tt, N, XS)) → mark(snd(splitAt(N, XS)))
active(U111(tt, V1)) → mark(U112(isLNat(V1)))
active(U112(tt)) → mark(tt)
active(U121(tt, V1)) → mark(U122(isNatural(V1)))
active(U122(tt)) → mark(tt)
active(U131(tt, V1, V2)) → mark(U132(isNatural(V1), V2))
active(U132(tt, V2)) → mark(U133(isLNat(V2)))
active(U133(tt)) → mark(tt)
active(U141(tt, V1, V2)) → mark(U142(isLNat(V1), V2))
active(U142(tt, V2)) → mark(U143(isLNat(V2)))
active(U143(tt)) → mark(tt)
active(U151(tt, V1, V2)) → mark(U152(isNatural(V1), V2))
active(U152(tt, V2)) → mark(U153(isLNat(V2)))
active(U153(tt)) → mark(tt)
active(U161(tt, N)) → mark(cons(N, natsFrom(s(N))))
active(U171(tt, N, XS)) → mark(head(afterNth(N, XS)))
active(U181(tt, Y)) → mark(Y)
active(U191(tt, XS)) → mark(pair(nil, XS))
active(U201(tt, N, X, XS)) → mark(U202(splitAt(N, XS), X))
active(U202(pair(YS, ZS), X)) → mark(pair(cons(X, YS), ZS))
active(U21(tt, X)) → mark(X)
active(U211(tt, XS)) → mark(XS)
active(U221(tt, N, XS)) → mark(fst(splitAt(N, XS)))
active(U31(tt, N)) → mark(N)
active(U41(tt, V1, V2)) → mark(U42(isNatural(V1), V2))
active(U42(tt, V2)) → mark(U43(isLNat(V2)))
active(U43(tt)) → mark(tt)
active(U51(tt, V1, V2)) → mark(U52(isNatural(V1), V2))
active(U52(tt, V2)) → mark(U53(isLNat(V2)))
active(U53(tt)) → mark(tt)
active(U61(tt, V1)) → mark(U62(isPLNat(V1)))
active(U62(tt)) → mark(tt)
active(U71(tt, V1)) → mark(U72(isNatural(V1)))
active(U72(tt)) → mark(tt)
active(U81(tt, V1)) → mark(U82(isPLNat(V1)))
active(U82(tt)) → mark(tt)
active(U91(tt, V1)) → mark(U92(isLNat(V1)))
active(U92(tt)) → mark(tt)
active(afterNth(N, XS)) → mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(and(tt, X)) → mark(X)
active(fst(pair(X, Y))) → mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X))
active(head(cons(N, XS))) → mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N))
active(isLNat(nil)) → mark(tt)
active(isLNat(afterNth(V1, V2))) → mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(cons(V1, V2))) → mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNat(fst(V1))) → mark(U61(isPLNatKind(V1), V1))
active(isLNat(natsFrom(V1))) → mark(U71(isNaturalKind(V1), V1))
active(isLNat(snd(V1))) → mark(U81(isPLNatKind(V1), V1))
active(isLNat(tail(V1))) → mark(U91(isLNatKind(V1), V1))
active(isLNat(take(V1, V2))) → mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isLNatKind(nil)) → mark(tt)
active(isLNatKind(afterNth(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(cons(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isLNatKind(fst(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(natsFrom(V1))) → mark(isNaturalKind(V1))
active(isLNatKind(snd(V1))) → mark(isPLNatKind(V1))
active(isLNatKind(tail(V1))) → mark(isLNatKind(V1))
active(isLNatKind(take(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isNatural(0)) → mark(tt)
active(isNatural(head(V1))) → mark(U111(isLNatKind(V1), V1))
active(isNatural(s(V1))) → mark(U121(isNaturalKind(V1), V1))
active(isNatural(sel(V1, V2))) → mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isNaturalKind(0)) → mark(tt)
active(isNaturalKind(head(V1))) → mark(isLNatKind(V1))
active(isNaturalKind(s(V1))) → mark(isNaturalKind(V1))
active(isNaturalKind(sel(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(isPLNat(pair(V1, V2))) → mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNat(splitAt(V1, V2))) → mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2))
active(isPLNatKind(pair(V1, V2))) → mark(and(isLNatKind(V1), isLNatKind(V2)))
active(isPLNatKind(splitAt(V1, V2))) → mark(and(isNaturalKind(V1), isLNatKind(V2)))
active(natsFrom(N)) → mark(U161(and(isNatural(N), isNaturalKind(N)), N))
active(sel(N, XS)) → mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
active(snd(pair(X, Y))) → mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y))
active(splitAt(0, XS)) → mark(U191(and(isLNat(XS), isLNatKind(XS)), XS))
active(splitAt(s(N), cons(X, XS))) → mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS))
active(tail(cons(N, XS))) → mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS))
active(take(N, XS)) → mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS))
mark(U101(X1, X2, X3)) → active(U101(mark(X1), X2, X3))
mark(tt) → active(tt)
mark(U102(X1, X2)) → active(U102(mark(X1), X2))
mark(isNatural(X)) → active(isNatural(X))
mark(U103(X)) → active(U103(mark(X)))
mark(isLNat(X)) → active(isLNat(X))
mark(U11(X1, X2, X3)) → active(U11(mark(X1), X2, X3))
mark(snd(X)) → active(snd(mark(X)))
mark(splitAt(X1, X2)) → active(splitAt(mark(X1), mark(X2)))
mark(U111(X1, X2)) → active(U111(mark(X1), X2))
mark(U112(X)) → active(U112(mark(X)))
mark(U121(X1, X2)) → active(U121(mark(X1), X2))
mark(U122(X)) → active(U122(mark(X)))
mark(U131(X1, X2, X3)) → active(U131(mark(X1), X2, X3))
mark(U132(X1, X2)) → active(U132(mark(X1), X2))
mark(U133(X)) → active(U133(mark(X)))
mark(U141(X1, X2, X3)) → active(U141(mark(X1), X2, X3))
mark(U142(X1, X2)) → active(U142(mark(X1), X2))
mark(U143(X)) → active(U143(mark(X)))
mark(U151(X1, X2, X3)) → active(U151(mark(X1), X2, X3))
mark(U152(X1, X2)) → active(U152(mark(X1), X2))
mark(U153(X)) → active(U153(mark(X)))
mark(U161(X1, X2)) → active(U161(mark(X1), X2))
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(natsFrom(X)) → active(natsFrom(mark(X)))
mark(s(X)) → active(s(mark(X)))
mark(U171(X1, X2, X3)) → active(U171(mark(X1), X2, X3))
mark(head(X)) → active(head(mark(X)))
mark(afterNth(X1, X2)) → active(afterNth(mark(X1), mark(X2)))
mark(U181(X1, X2)) → active(U181(mark(X1), X2))
mark(U191(X1, X2)) → active(U191(mark(X1), X2))
mark(pair(X1, X2)) → active(pair(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U201(X1, X2, X3, X4)) → active(U201(mark(X1), X2, X3, X4))
mark(U202(X1, X2)) → active(U202(mark(X1), X2))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U211(X1, X2)) → active(U211(mark(X1), X2))
mark(U221(X1, X2, X3)) → active(U221(mark(X1), X2, X3))
mark(fst(X)) → active(fst(mark(X)))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2)) → active(U42(mark(X1), X2))
mark(U43(X)) → active(U43(mark(X)))
mark(U51(X1, X2, X3)) → active(U51(mark(X1), X2, X3))
mark(U52(X1, X2)) → active(U52(mark(X1), X2))
mark(U53(X)) → active(U53(mark(X)))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(isPLNat(X)) → active(isPLNat(X))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(U81(X1, X2)) → active(U81(mark(X1), X2))
mark(U82(X)) → active(U82(mark(X)))
mark(U91(X1, X2)) → active(U91(mark(X1), X2))
mark(U92(X)) → active(U92(mark(X)))
mark(and(X1, X2)) → active(and(mark(X1), X2))
mark(isNaturalKind(X)) → active(isNaturalKind(X))
mark(isLNatKind(X)) → active(isLNatKind(X))
mark(isPLNatKind(X)) → active(isPLNatKind(X))
mark(tail(X)) → active(tail(mark(X)))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
mark(0) → active(0)
mark(sel(X1, X2)) → active(sel(mark(X1), mark(X2)))
U101(mark(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, mark(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, mark(X3)) → U101(X1, X2, X3)
U101(active(X1), X2, X3) → U101(X1, X2, X3)
U101(X1, active(X2), X3) → U101(X1, X2, X3)
U101(X1, X2, active(X3)) → U101(X1, X2, X3)
U102(mark(X1), X2) → U102(X1, X2)
U102(X1, mark(X2)) → U102(X1, X2)
U102(active(X1), X2) → U102(X1, X2)
U102(X1, active(X2)) → U102(X1, X2)
isNatural(mark(X)) → isNatural(X)
isNatural(active(X)) → isNatural(X)
U103(mark(X)) → U103(X)
U103(active(X)) → U103(X)
isLNat(mark(X)) → isLNat(X)
isLNat(active(X)) → isLNat(X)
U11(mark(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, mark(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, mark(X3)) → U11(X1, X2, X3)
U11(active(X1), X2, X3) → U11(X1, X2, X3)
U11(X1, active(X2), X3) → U11(X1, X2, X3)
U11(X1, X2, active(X3)) → U11(X1, X2, X3)
snd(mark(X)) → snd(X)
snd(active(X)) → snd(X)
splitAt(mark(X1), X2) → splitAt(X1, X2)
splitAt(X1, mark(X2)) → splitAt(X1, X2)
splitAt(active(X1), X2) → splitAt(X1, X2)
splitAt(X1, active(X2)) → splitAt(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U112(mark(X)) → U112(X)
U112(active(X)) → U112(X)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
U122(mark(X)) → U122(X)
U122(active(X)) → U122(X)
U131(mark(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, mark(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, mark(X3)) → U131(X1, X2, X3)
U131(active(X1), X2, X3) → U131(X1, X2, X3)
U131(X1, active(X2), X3) → U131(X1, X2, X3)
U131(X1, X2, active(X3)) → U131(X1, X2, X3)
U132(mark(X1), X2) → U132(X1, X2)
U132(X1, mark(X2)) → U132(X1, X2)
U132(active(X1), X2) → U132(X1, X2)
U132(X1, active(X2)) → U132(X1, X2)
U133(mark(X)) → U133(X)
U133(active(X)) → U133(X)
U141(mark(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, mark(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, mark(X3)) → U141(X1, X2, X3)
U141(active(X1), X2, X3) → U141(X1, X2, X3)
U141(X1, active(X2), X3) → U141(X1, X2, X3)
U141(X1, X2, active(X3)) → U141(X1, X2, X3)
U142(mark(X1), X2) → U142(X1, X2)
U142(X1, mark(X2)) → U142(X1, X2)
U142(active(X1), X2) → U142(X1, X2)
U142(X1, active(X2)) → U142(X1, X2)
U143(mark(X)) → U143(X)
U143(active(X)) → U143(X)
U151(mark(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, mark(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, mark(X3)) → U151(X1, X2, X3)
U151(active(X1), X2, X3) → U151(X1, X2, X3)
U151(X1, active(X2), X3) → U151(X1, X2, X3)
U151(X1, X2, active(X3)) → U151(X1, X2, X3)
U152(mark(X1), X2) → U152(X1, X2)
U152(X1, mark(X2)) → U152(X1, X2)
U152(active(X1), X2) → U152(X1, X2)
U152(X1, active(X2)) → U152(X1, X2)
U153(mark(X)) → U153(X)
U153(active(X)) → U153(X)
U161(mark(X1), X2) → U161(X1, X2)
U161(X1, mark(X2)) → U161(X1, X2)
U161(active(X1), X2) → U161(X1, X2)
U161(X1, active(X2)) → U161(X1, 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)
natsFrom(mark(X)) → natsFrom(X)
natsFrom(active(X)) → natsFrom(X)
s(mark(X)) → s(X)
s(active(X)) → s(X)
U171(mark(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, mark(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, mark(X3)) → U171(X1, X2, X3)
U171(active(X1), X2, X3) → U171(X1, X2, X3)
U171(X1, active(X2), X3) → U171(X1, X2, X3)
U171(X1, X2, active(X3)) → U171(X1, X2, X3)
head(mark(X)) → head(X)
head(active(X)) → head(X)
afterNth(mark(X1), X2) → afterNth(X1, X2)
afterNth(X1, mark(X2)) → afterNth(X1, X2)
afterNth(active(X1), X2) → afterNth(X1, X2)
afterNth(X1, active(X2)) → afterNth(X1, X2)
U181(mark(X1), X2) → U181(X1, X2)
U181(X1, mark(X2)) → U181(X1, X2)
U181(active(X1), X2) → U181(X1, X2)
U181(X1, active(X2)) → U181(X1, X2)
U191(mark(X1), X2) → U191(X1, X2)
U191(X1, mark(X2)) → U191(X1, X2)
U191(active(X1), X2) → U191(X1, X2)
U191(X1, active(X2)) → U191(X1, X2)
pair(mark(X1), X2) → pair(X1, X2)
pair(X1, mark(X2)) → pair(X1, X2)
pair(active(X1), X2) → pair(X1, X2)
pair(X1, active(X2)) → pair(X1, X2)
U201(mark(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, mark(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, mark(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, mark(X4)) → U201(X1, X2, X3, X4)
U201(active(X1), X2, X3, X4) → U201(X1, X2, X3, X4)
U201(X1, active(X2), X3, X4) → U201(X1, X2, X3, X4)
U201(X1, X2, active(X3), X4) → U201(X1, X2, X3, X4)
U201(X1, X2, X3, active(X4)) → U201(X1, X2, X3, X4)
U202(mark(X1), X2) → U202(X1, X2)
U202(X1, mark(X2)) → U202(X1, X2)
U202(active(X1), X2) → U202(X1, X2)
U202(X1, active(X2)) → U202(X1, X2)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, mark(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, mark(X3)) → U221(X1, X2, X3)
U221(active(X1), X2, X3) → U221(X1, X2, X3)
U221(X1, active(X2), X3) → U221(X1, X2, X3)
U221(X1, X2, active(X3)) → U221(X1, X2, X3)
fst(mark(X)) → fst(X)
fst(active(X)) → fst(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2) → U42(X1, X2)
U42(X1, mark(X2)) → U42(X1, X2)
U42(active(X1), X2) → U42(X1, X2)
U42(X1, active(X2)) → U42(X1, X2)
U43(mark(X)) → U43(X)
U43(active(X)) → U43(X)
U51(mark(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, mark(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, mark(X3)) → U51(X1, X2, X3)
U51(active(X1), X2, X3) → U51(X1, X2, X3)
U51(X1, active(X2), X3) → U51(X1, X2, X3)
U51(X1, X2, active(X3)) → U51(X1, X2, X3)
U52(mark(X1), X2) → U52(X1, X2)
U52(X1, mark(X2)) → U52(X1, X2)
U52(active(X1), X2) → U52(X1, X2)
U52(X1, active(X2)) → U52(X1, X2)
U53(mark(X)) → U53(X)
U53(active(X)) → U53(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)
isPLNat(mark(X)) → isPLNat(X)
isPLNat(active(X)) → isPLNat(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
U81(mark(X1), X2) → U81(X1, X2)
U81(X1, mark(X2)) → U81(X1, X2)
U81(active(X1), X2) → U81(X1, X2)
U81(X1, active(X2)) → U81(X1, X2)
U82(mark(X)) → U82(X)
U82(active(X)) → U82(X)
U91(mark(X1), X2) → U91(X1, X2)
U91(X1, mark(X2)) → U91(X1, X2)
U91(active(X1), X2) → U91(X1, X2)
U91(X1, active(X2)) → U91(X1, X2)
U92(mark(X)) → U92(X)
U92(active(X)) → U92(X)
and(mark(X1), X2) → and(X1, X2)
and(X1, mark(X2)) → and(X1, X2)
and(active(X1), X2) → and(X1, X2)
and(X1, active(X2)) → and(X1, X2)
isNaturalKind(mark(X)) → isNaturalKind(X)
isNaturalKind(active(X)) → isNaturalKind(X)
isLNatKind(mark(X)) → isLNatKind(X)
isLNatKind(active(X)) → isLNatKind(X)
isPLNatKind(mark(X)) → isPLNatKind(X)
isPLNatKind(active(X)) → isPLNatKind(X)
tail(mark(X)) → tail(X)
tail(active(X)) → tail(X)
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)
sel(mark(X1), X2) → sel(X1, X2)
sel(X1, mark(X2)) → sel(X1, X2)
sel(active(X1), X2) → sel(X1, X2)
sel(X1, active(X2)) → sel(X1, X2)