0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 QDPOrderProof (⇔)
↳11 QDP
↳12 QDPOrderProof (⇔)
↳13 QDP
↳14 PisEmptyProof (⇔)
↳15 TRUE
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 QDPOrderProof (⇔)
↳20 QDP
↳21 QDPOrderProof (⇔)
↳22 QDP
↳23 QDPOrderProof (⇔)
↳24 QDP
↳25 PisEmptyProof (⇔)
↳26 TRUE
↳27 QDP
↳28 QDPOrderProof (⇔)
↳29 QDP
↳30 QDPOrderProof (⇔)
↳31 QDP
↳32 PisEmptyProof (⇔)
↳33 TRUE
↳34 QDP
↳35 QDPOrderProof (⇔)
↳36 QDP
↳37 QDPOrderProof (⇔)
↳38 QDP
↳39 PisEmptyProof (⇔)
↳40 TRUE
↳41 QDP
↳42 QDPOrderProof (⇔)
↳43 QDP
↳44 QDPOrderProof (⇔)
↳45 QDP
↳46 PisEmptyProof (⇔)
↳47 TRUE
↳48 QDP
↳49 QDPOrderProof (⇔)
↳50 QDP
↳51 QDPOrderProof (⇔)
↳52 QDP
↳53 PisEmptyProof (⇔)
↳54 TRUE
↳55 QDP
↳56 QDPOrderProof (⇔)
↳57 QDP
↳58 QDPOrderProof (⇔)
↳59 QDP
↳60 QDPOrderProof (⇔)
↳61 QDP
↳62 QDPOrderProof (⇔)
↳63 QDP
↳64 PisEmptyProof (⇔)
↳65 TRUE
↳66 QDP
↳67 QDPOrderProof (⇔)
↳68 QDP
↳69 QDPOrderProof (⇔)
↳70 QDP
↳71 PisEmptyProof (⇔)
↳72 TRUE
↳73 QDP
↳74 QDPOrderProof (⇔)
↳75 QDP
↳76 QDPOrderProof (⇔)
↳77 QDP
↳78 QDPOrderProof (⇔)
↳79 QDP
↳80 QDPOrderProof (⇔)
↳81 QDP
↳82 PisEmptyProof (⇔)
↳83 TRUE
↳84 QDP
↳85 QDPOrderProof (⇔)
↳86 QDP
↳87 QDPOrderProof (⇔)
↳88 QDP
↳89 PisEmptyProof (⇔)
↳90 TRUE
↳91 QDP
↳92 QDPOrderProof (⇔)
↳93 QDP
↳94 QDPOrderProof (⇔)
↳95 QDP
↳96 QDPOrderProof (⇔)
↳97 QDP
↳98 QDPOrderProof (⇔)
↳99 QDP
↳100 PisEmptyProof (⇔)
↳101 TRUE
↳102 QDP
↳103 QDPOrderProof (⇔)
↳104 QDP
↳105 QDPOrderProof (⇔)
↳106 QDP
↳107 PisEmptyProof (⇔)
↳108 TRUE
↳109 QDP
↳110 QDPOrderProof (⇔)
↳111 QDP
↳112 QDPOrderProof (⇔)
↳113 QDP
↳114 QDPOrderProof (⇔)
↳115 QDP
↳116 QDPOrderProof (⇔)
↳117 QDP
↳118 PisEmptyProof (⇔)
↳119 TRUE
↳120 QDP
↳121 QDPOrderProof (⇔)
↳122 QDP
↳123 QDPOrderProof (⇔)
↳124 QDP
↳125 PisEmptyProof (⇔)
↳126 TRUE
↳127 QDP
↳128 QDPOrderProof (⇔)
↳129 QDP
↳130 QDPOrderProof (⇔)
↳131 QDP
↳132 PisEmptyProof (⇔)
↳133 TRUE
↳134 QDP
↳135 QDPOrderProof (⇔)
↳136 QDP
↳137 QDPOrderProof (⇔)
↳138 QDP
↳139 QDPOrderProof (⇔)
↳140 QDP
↳141 QDPOrderProof (⇔)
↳142 QDP
↳143 PisEmptyProof (⇔)
↳144 TRUE
↳145 QDP
↳146 QDPOrderProof (⇔)
↳147 QDP
↳148 QDPOrderProof (⇔)
↳149 QDP
↳150 PisEmptyProof (⇔)
↳151 TRUE
↳152 QDP
↳153 QDPOrderProof (⇔)
↳154 QDP
↳155 QDPOrderProof (⇔)
↳156 QDP
↳157 QDPOrderProof (⇔)
↳158 QDP
↳159 QDPOrderProof (⇔)
↳160 QDP
↳161 PisEmptyProof (⇔)
↳162 TRUE
↳163 QDP
↳164 QDPOrderProof (⇔)
↳165 QDP
↳166 QDPOrderProof (⇔)
↳167 QDP
↳168 QDPOrderProof (⇔)
↳169 QDP
↳170 QDPOrderProof (⇔)
↳171 QDP
↳172 QDPOrderProof (⇔)
↳173 QDP
↳174 QDPOrderProof (⇔)
↳175 QDP
↳176 PisEmptyProof (⇔)
↳177 TRUE
↳178 QDP
↳179 QDPOrderProof (⇔)
↳180 QDP
↳181 QDPOrderProof (⇔)
↳182 QDP
↳183 PisEmptyProof (⇔)
↳184 TRUE
↳185 QDP
↳186 QDPOrderProof (⇔)
↳187 QDP
↳188 QDPOrderProof (⇔)
↳189 QDP
↳190 QDPOrderProof (⇔)
↳191 QDP
↳192 QDPOrderProof (⇔)
↳193 QDP
↳194 PisEmptyProof (⇔)
↳195 TRUE
↳196 QDP
↳197 QDPOrderProof (⇔)
↳198 QDP
↳199 QDPOrderProof (⇔)
↳200 QDP
↳201 QDPOrderProof (⇔)
↳202 QDP
↳203 QDPOrderProof (⇔)
↳204 QDP
↳205 QDPOrderProof (⇔)
↳206 QDP
↳207 QDPOrderProof (⇔)
↳208 QDP
↳209 PisEmptyProof (⇔)
↳210 TRUE
↳211 QDP
↳212 QDPOrderProof (⇔)
↳213 QDP
↳214 QDPOrderProof (⇔)
↳215 QDP
↳216 QDPOrderProof (⇔)
↳217 QDP
↳218 QDPOrderProof (⇔)
↳219 QDP
↳220 PisEmptyProof (⇔)
↳221 TRUE
↳222 QDP
↳223 QDPOrderProof (⇔)
↳224 QDP
↳225 QDPOrderProof (⇔)
↳226 QDP
↳227 PisEmptyProof (⇔)
↳228 TRUE
↳229 QDP
↳230 QDPOrderProof (⇔)
↳231 QDP
↳232 QDPOrderProof (⇔)
↳233 QDP
↳234 QDPOrderProof (⇔)
↳235 QDP
↳236 QDPOrderProof (⇔)
↳237 QDP
↳238 QDPOrderProof (⇔)
↳239 QDP
↳240 QDPOrderProof (⇔)
↳241 QDP
↳242 PisEmptyProof (⇔)
↳243 TRUE
↳244 QDP
↳245 QDPOrderProof (⇔)
↳246 QDP
↳247 QDPOrderProof (⇔)
↳248 QDP
↳249 QDPOrderProof (⇔)
↳250 QDP
↳251 QDPOrderProof (⇔)
↳252 QDP
↳253 PisEmptyProof (⇔)
↳254 TRUE
↳255 QDP
↳256 QDPOrderProof (⇔)
↳257 QDP
↳258 QDPOrderProof (⇔)
↳259 QDP
↳260 QDPOrderProof (⇔)
↳261 QDP
↳262 QDPOrderProof (⇔)
↳263 QDP
↳264 PisEmptyProof (⇔)
↳265 TRUE
↳266 QDP
↳267 QDPOrderProof (⇔)
↳268 QDP
↳269 QDPOrderProof (⇔)
↳270 QDP
↳271 QDPOrderProof (⇔)
↳272 QDP
↳273 QDPOrderProof (⇔)
↳274 QDP
↳275 PisEmptyProof (⇔)
↳276 TRUE
↳277 QDP
↳278 QDPOrderProof (⇔)
↳279 QDP
↳280 QDPOrderProof (⇔)
↳281 QDP
↳282 QDPOrderProof (⇔)
↳283 QDP
↳284 QDPOrderProof (⇔)
↳285 QDP
↳286 QDPOrderProof (⇔)
↳287 QDP
↳288 QDPOrderProof (⇔)
↳289 QDP
↳290 PisEmptyProof (⇔)
↳291 TRUE
↳292 QDP
↳293 QDPOrderProof (⇔)
↳294 QDP
↳295 QDPOrderProof (⇔)
↳296 QDP
↳297 QDPOrderProof (⇔)
↳298 QDP
↳299 QDPOrderProof (⇔)
↳300 QDP
↳301 PisEmptyProof (⇔)
↳302 TRUE
↳303 QDP
↳304 QDPOrderProof (⇔)
↳305 QDP
↳306 QDPOrderProof (⇔)
↳307 QDP
↳308 QDPOrderProof (⇔)
↳309 QDP
↳310 QDPOrderProof (⇔)
↳311 QDP
↳312 PisEmptyProof (⇔)
↳313 TRUE
↳314 QDP
↳315 QDPOrderProof (⇔)
↳316 QDP
↳317 QDPOrderProof (⇔)
↳318 QDP
↳319 QDPOrderProof (⇔)
↳320 QDP
↳321 QDPOrderProof (⇔)
↳322 QDP
↳323 PisEmptyProof (⇔)
↳324 TRUE
↳325 QDP
↳326 QDPOrderProof (⇔)
↳327 QDP
↳328 QDPOrderProof (⇔)
↳329 QDP
↳330 QDPOrderProof (⇔)
↳331 QDP
↳332 QDPOrderProof (⇔)
↳333 QDP
↳334 PisEmptyProof (⇔)
↳335 TRUE
↳336 QDP
↳337 QDPOrderProof (⇔)
↳338 QDP
↳339 QDPOrderProof (⇔)
↳340 QDP
↳341 PisEmptyProof (⇔)
↳342 TRUE
↳343 QDP
↳344 QDPOrderProof (⇔)
↳345 QDP
↳346 QDPOrderProof (⇔)
↳347 QDP
↳348 QDPOrderProof (⇔)
↳349 QDP
↳350 QDPOrderProof (⇔)
↳351 QDP
↳352 QDPOrderProof (⇔)
↳353 QDP
↳354 QDPOrderProof (⇔)
↳355 QDP
↳356 PisEmptyProof (⇔)
↳357 TRUE
↳358 QDP
↳359 QDPOrderProof (⇔)
↳360 QDP
↳361 QDPOrderProof (⇔)
↳362 QDP
↳363 PisEmptyProof (⇔)
↳364 TRUE
↳365 QDP
↳366 QDPOrderProof (⇔)
↳367 QDP
↳368 QDPOrderProof (⇔)
↳369 QDP
↳370 PisEmptyProof (⇔)
↳371 TRUE
↳372 QDP
↳373 QDPOrderProof (⇔)
↳374 QDP
↳375 QDPOrderProof (⇔)
↳376 QDP
↳377 QDPOrderProof (⇔)
↳378 QDP
↳379 QDPOrderProof (⇔)
↳380 QDP
↳381 PisEmptyProof (⇔)
↳382 TRUE
↳383 QDP
↳384 QDPOrderProof (⇔)
↳385 QDP
↳386 QDPOrderProof (⇔)
↳387 QDP
↳388 QDPOrderProof (⇔)
↳389 QDP
↳390 QDPOrderProof (⇔)
↳391 QDP
↳392 PisEmptyProof (⇔)
↳393 TRUE
↳394 QDP
↳395 QDPOrderProof (⇔)
↳396 QDP
↳397 QDPOrderProof (⇔)
↳398 QDP
↳399 PisEmptyProof (⇔)
↳400 TRUE
↳401 QDP
↳402 QDPOrderProof (⇔)
↳403 QDP
↳404 QDPOrderProof (⇔)
↳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 QDPOrderProof (⇔)
↳418 QDP
↳419 QDPOrderProof (⇔)
↳420 QDP
↳421 QDPOrderProof (⇔)
↳422 QDP
↳423 QDPOrderProof (⇔)
↳424 QDP
↳425 PisEmptyProof (⇔)
↳426 TRUE
↳427 QDP
↳428 QDPOrderProof (⇔)
↳429 QDP
↳430 QDPOrderProof (⇔)
↳431 QDP
↳432 PisEmptyProof (⇔)
↳433 TRUE
↳434 QDP
↳435 QDPOrderProof (⇔)
↳436 QDP
↳437 QDPOrderProof (⇔)
↳438 QDP
↳439 QDPOrderProof (⇔)
↳440 QDP
↳441 QDPOrderProof (⇔)
↳442 QDP
↳443 PisEmptyProof (⇔)
↳444 TRUE
↳445 QDP
↳446 QDPOrderProof (⇔)
↳447 QDP
↳448 QDPOrderProof (⇔)
↳449 QDP
↳450 QDPOrderProof (⇔)
↳451 QDP
↳452 QDPOrderProof (⇔)
↳453 QDP
↳454 QDPOrderProof (⇔)
↳455 QDP
↳456 QDPOrderProof (⇔)
↳457 QDP
↳458 PisEmptyProof (⇔)
↳459 TRUE
↳460 QDP
↳461 QDPOrderProof (⇔)
↳462 QDP
↳463 QDPOrderProof (⇔)
↳464 QDP
↳465 PisEmptyProof (⇔)
↳466 TRUE
↳467 QDP
↳468 QDPOrderProof (⇔)
↳469 QDP
↳470 QDPOrderProof (⇔)
↳471 QDP
↳472 QDPOrderProof (⇔)
↳473 QDP
↳474 QDPOrderProof (⇔)
↳475 QDP
↳476 PisEmptyProof (⇔)
↳477 TRUE
↳478 QDP
↳479 QDPOrderProof (⇔)
↳480 QDP
↳481 QDPOrderProof (⇔)
↳482 QDP
↳483 QDPOrderProof (⇔)
↳484 QDP
↳485 QDPOrderProof (⇔)
↳486 QDP
↳487 QDPOrderProof (⇔)
↳488 QDP
↳489 QDPOrderProof (⇔)
↳490 QDP
↳491 PisEmptyProof (⇔)
↳492 TRUE
↳493 QDP
↳494 QDPOrderProof (⇔)
↳495 QDP
↳496 QDPOrderProof (⇔)
↳497 QDP
↳498 PisEmptyProof (⇔)
↳499 TRUE
↳500 QDP
↳501 QDPOrderProof (⇔)
↳502 QDP
↳503 QDPOrderProof (⇔)
↳504 QDP
↳505 QDPOrderProof (⇔)
↳506 QDP
↳507 QDPOrderProof (⇔)
↳508 QDP
↳509 PisEmptyProof (⇔)
↳510 TRUE
↳511 QDP
↳512 QDPOrderProof (⇔)
↳513 QDP
↳514 QDPOrderProof (⇔)
↳515 QDP
↳516 PisEmptyProof (⇔)
↳517 TRUE
↳518 QDP
↳519 QDPOrderProof (⇔)
↳520 QDP
↳521 QDPOrderProof (⇔)
↳522 QDP
↳523 QDPOrderProof (⇔)
↳524 QDP
↳525 QDPOrderProof (⇔)
↳526 QDP
↳527 PisEmptyProof (⇔)
↳528 TRUE
↳529 QDP
↳530 QDPOrderProof (⇔)
↳531 QDP
↳532 QDPOrderProof (⇔)
↳533 QDP
↳534 QDPOrderProof (⇔)
↳535 QDP
↳536 QDPOrderProof (⇔)
↳537 QDP
↳538 PisEmptyProof (⇔)
↳539 TRUE
↳540 QDP
↳541 QDPOrderProof (⇔)
↳542 QDP
↳543 QDPOrderProof (⇔)
↳544 QDP
↳545 PisEmptyProof (⇔)
↳546 TRUE
↳547 QDP
↳548 QDPOrderProof (⇔)
↳549 QDP
↳550 QDPOrderProof (⇔)
↳551 QDP
↳552 QDPOrderProof (⇔)
↳553 QDP
↳554 QDPOrderProof (⇔)
↳555 QDP
↳556 QDPOrderProof (⇔)
↳557 QDP
↳558 QDPOrderProof (⇔)
↳559 QDP
↳560 PisEmptyProof (⇔)
↳561 TRUE
↳562 QDP
↳563 QDPOrderProof (⇔)
↳564 QDP
↳565 QDPOrderProof (⇔)
↳566 QDP
↳567 PisEmptyProof (⇔)
↳568 TRUE
↳569 QDP
↳570 QDPOrderProof (⇔)
↳571 QDP
↳572 QDPOrderProof (⇔)
↳573 QDP
↳574 PisEmptyProof (⇔)
↳575 TRUE
↳576 QDP
↳577 QDPOrderProof (⇔)
↳578 QDP
↳579 QDPOrderProof (⇔)
↳580 QDP
↳581 PisEmptyProof (⇔)
↳582 TRUE
↳583 QDP
↳584 QDPOrderProof (⇔)
↳585 QDP
↳586 QDPOrderProof (⇔)
↳587 QDP
↳588 QDPOrderProof (⇔)
↳589 QDP
↳590 QDPOrderProof (⇔)
↳591 QDP
↳592 PisEmptyProof (⇔)
↳593 TRUE
↳594 QDP
↳595 QDPOrderProof (⇔)
↳596 QDP
↳597 QDPOrderProof (⇔)
↳598 QDP
↳599 QDPOrderProof (⇔)
↳600 QDP
↳601 QDPOrderProof (⇔)
↳602 QDP
↳603 QDPOrderProof (⇔)
↳604 QDP
↳605 QDPOrderProof (⇔)
↳606 QDP
↳607 PisEmptyProof (⇔)
↳608 TRUE
↳609 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)
mark1 > SEL1
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(mark(X1), X2) → SEL(X1, X2)
trivial
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)
active1 > SEL1
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, active(X2)) → SEL(X1, X2)
trivial
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)
mark1 > TAKE1
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(mark(X1), X2) → TAKE(X1, X2)
trivial
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)
active1 > TAKE1
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, active(X2)) → TAKE(X1, X2)
trivial
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)
active1 > TAIL1
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)
mark1 > TAIL1
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)
active1 > ISPLNATKIND1
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)
mark1 > ISPLNATKIND1
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)
active1 > ISLNATKIND1
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)
mark1 > ISLNATKIND1
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)
active1 > ISNATURALKIND1
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)
mark1 > ISNATURALKIND1
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)
mark1 > AND1
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(mark(X1), X2) → AND(X1, X2)
trivial
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)
active1 > AND1
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, active(X2)) → AND(X1, X2)
trivial
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)
active1 > U92^11
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)
mark1 > U92^11
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)
mark1 > U91^11
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(mark(X1), X2) → U911(X1, X2)
trivial
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)
active1 > U91^11
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, active(X2)) → U911(X1, X2)
trivial
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)
active1 > U82^11
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)
mark1 > U82^11
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)
mark1 > U81^11
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(mark(X1), X2) → U811(X1, X2)
trivial
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)
active1 > U81^11
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, active(X2)) → U811(X1, X2)
trivial
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)
active1 > U72^11
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)
mark1 > U72^11
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)
mark1 > U71^11
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(mark(X1), X2) → U711(X1, X2)
trivial
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)
active1 > U71^11
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, active(X2)) → U711(X1, X2)
trivial
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)
active1 > ISPLNAT1
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)
mark1 > ISPLNAT1
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)
active1 > U62^11
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)
mark1 > U62^11
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)
mark1 > U61^11
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(mark(X1), X2) → U611(X1, X2)
trivial
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)
active1 > U61^11
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, active(X2)) → U611(X1, X2)
trivial
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)
active1 > U53^11
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)
mark1 > U53^11
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)
mark1 > U52^11
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(mark(X1), X2) → U521(X1, X2)
trivial
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)
active1 > U52^11
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, active(X2)) → U521(X1, X2)
trivial
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, X2, mark(X3)) → U511(X1, X2, X3)
mark1 > U51^11
U511(X1, mark(X2), X3) → U511(X1, X2, X3)
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(X1, mark(X2), X3) → U511(X1, X2, X3)
mark1 > U51^12
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)
mark1 > U51^13
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(active(X1), X2, X3) → U511(X1, X2, X3)
active1 > U51^11
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, active(X2), X3) → U511(X1, X2, X3)
active1 > U51^12
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
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)
active1 > U43^11
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)
mark1 > U43^11
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)
mark1 > U42^11
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(mark(X1), X2) → U421(X1, X2)
trivial
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)
active1 > U42^11
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, active(X2)) → U421(X1, X2)
trivial
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, X2, mark(X3)) → U411(X1, X2, X3)
mark1 > U41^11
U411(X1, mark(X2), X3) → U411(X1, X2, X3)
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(X1, mark(X2), X3) → U411(X1, X2, X3)
mark1 > U41^12
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)
mark1 > U41^13
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(active(X1), X2, X3) → U411(X1, X2, X3)
active1 > U41^11
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, active(X2), X3) → U411(X1, X2, X3)
active1 > U41^12
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
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)
mark1 > U31^11
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(mark(X1), X2) → U311(X1, X2)
trivial
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)
active1 > U31^11
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, active(X2)) → U311(X1, X2)
trivial
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)
active1 > FST1
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)
mark1 > FST1
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, X2, mark(X3)) → U2211(X1, X2, X3)
mark1 > U221^11
U2211(X1, mark(X2), X3) → U2211(X1, X2, X3)
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(X1, mark(X2), X3) → U2211(X1, X2, X3)
mark1 > U221^12
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)
mark1 > U221^13
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(active(X1), X2, X3) → U2211(X1, X2, X3)
active1 > U221^11
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, active(X2), X3) → U2211(X1, X2, X3)
active1 > U221^12
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
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)
mark1 > U211^11
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(mark(X1), X2) → U2111(X1, X2)
trivial
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)
active1 > U211^11
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, active(X2)) → U2111(X1, X2)
trivial
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)
mark1 > U21^11
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(mark(X1), X2) → U211(X1, X2)
trivial
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)
active1 > U21^11
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, active(X2)) → U211(X1, X2)
trivial
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)
mark1 > U202^11
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(mark(X1), X2) → U2021(X1, X2)
trivial
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)
active1 > U202^11
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, active(X2)) → U2021(X1, X2)
trivial
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(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)
trivial
U2011(X1, mark(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, mark(X2), X3, X4) → U2011(X1, X2, X3, X4)
mark1 > U201^14
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(active(X1), X2, X3, X4) → U2011(X1, X2, X3, X4)
active1 > U201^11
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, active(X2), X3, X4) → U2011(X1, X2, X3, X4)
trivial
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)
active1 > U201^11
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, X3, active(X4)) → U2011(X1, X2, X3, X4)
trivial
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)
mark1 > PAIR1
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(mark(X1), X2) → PAIR(X1, X2)
trivial
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)
active1 > PAIR1
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, active(X2)) → PAIR(X1, X2)
trivial
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)
mark1 > U191^11
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(mark(X1), X2) → U1911(X1, X2)
trivial
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)
active1 > U191^11
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, active(X2)) → U1911(X1, X2)
trivial
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)
mark1 > U181^11
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(mark(X1), X2) → U1811(X1, X2)
trivial
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)
active1 > U181^11
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, active(X2)) → U1811(X1, X2)
trivial
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)
mark1 > AFTERNTH1
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(mark(X1), X2) → AFTERNTH(X1, X2)
trivial
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)
active1 > AFTERNTH1
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, active(X2)) → AFTERNTH(X1, X2)
trivial
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)
active1 > HEAD1
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)
mark1 > HEAD1
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, X2, mark(X3)) → U1711(X1, X2, X3)
mark1 > U171^11
U1711(X1, mark(X2), X3) → U1711(X1, X2, X3)
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(X1, mark(X2), X3) → U1711(X1, X2, X3)
mark1 > U171^12
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)
mark1 > U171^13
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(active(X1), X2, X3) → U1711(X1, X2, X3)
active1 > U171^11
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, active(X2), X3) → U1711(X1, X2, X3)
active1 > U171^12
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
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)
active1 > S1
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)
mark1 > S1
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)
active1 > NATSFROM1
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)
mark1 > NATSFROM1
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)
mark1 > CONS1
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(mark(X1), X2) → CONS(X1, X2)
trivial
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)
active1 > CONS1
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, active(X2)) → CONS(X1, X2)
trivial
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)
mark1 > U161^11
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(mark(X1), X2) → U1611(X1, X2)
trivial
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)
active1 > U161^11
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, active(X2)) → U1611(X1, X2)
trivial
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)
active1 > U153^11
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)
mark1 > U153^11
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)
mark1 > U152^11
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(mark(X1), X2) → U1521(X1, X2)
trivial
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)
active1 > U152^11
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, active(X2)) → U1521(X1, X2)
trivial
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, X2, mark(X3)) → U1511(X1, X2, X3)
mark1 > U151^11
U1511(X1, mark(X2), X3) → U1511(X1, X2, X3)
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(X1, mark(X2), X3) → U1511(X1, X2, X3)
mark1 > U151^12
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)
mark1 > U151^13
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(active(X1), X2, X3) → U1511(X1, X2, X3)
active1 > U151^11
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, active(X2), X3) → U1511(X1, X2, X3)
active1 > U151^12
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
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)
active1 > U143^11
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)
mark1 > U143^11
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)
mark1 > U142^11
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(mark(X1), X2) → U1421(X1, X2)
trivial
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)
active1 > U142^11
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, active(X2)) → U1421(X1, X2)
trivial
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, X2, mark(X3)) → U1411(X1, X2, X3)
mark1 > U141^11
U1411(X1, mark(X2), X3) → U1411(X1, X2, X3)
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(X1, mark(X2), X3) → U1411(X1, X2, X3)
mark1 > U141^12
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)
mark1 > U141^13
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(active(X1), X2, X3) → U1411(X1, X2, X3)
active1 > U141^11
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, active(X2), X3) → U1411(X1, X2, X3)
active1 > U141^12
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
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)
active1 > U133^11
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)
mark1 > U133^11
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)
mark1 > U132^11
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(mark(X1), X2) → U1321(X1, X2)
trivial
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)
active1 > U132^11
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, active(X2)) → U1321(X1, X2)
trivial
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, X2, mark(X3)) → U1311(X1, X2, X3)
mark1 > U131^11
U1311(X1, mark(X2), X3) → U1311(X1, X2, X3)
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(X1, mark(X2), X3) → U1311(X1, X2, X3)
mark1 > U131^12
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)
mark1 > U131^13
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(active(X1), X2, X3) → U1311(X1, X2, X3)
active1 > U131^11
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, active(X2), X3) → U1311(X1, X2, X3)
active1 > U131^12
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
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)
active1 > U122^11
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)
mark1 > U122^11
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)
mark1 > U121^11
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(mark(X1), X2) → U1211(X1, X2)
trivial
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)
active1 > U121^11
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, active(X2)) → U1211(X1, X2)
trivial
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)
active1 > U112^11
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)
mark1 > U112^11
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)
mark1 > U111^11
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(mark(X1), X2) → U1111(X1, X2)
trivial
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)
active1 > U111^11
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, active(X2)) → U1111(X1, X2)
trivial
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)
mark1 > SPLITAT1
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(mark(X1), X2) → SPLITAT(X1, X2)
trivial
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)
active1 > SPLITAT1
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, active(X2)) → SPLITAT(X1, X2)
trivial
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)
active1 > SND1
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)
mark1 > SND1
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, X2, mark(X3)) → U111(X1, X2, X3)
mark1 > U11^11
U111(X1, mark(X2), X3) → U111(X1, X2, X3)
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(X1, mark(X2), X3) → U111(X1, X2, X3)
mark1 > U11^12
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)
mark1 > U11^13
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(active(X1), X2, X3) → U111(X1, X2, X3)
active1 > U11^11
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, active(X2), X3) → U111(X1, X2, X3)
active1 > U11^12
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
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)
active1 > ISLNAT1
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)
mark1 > ISLNAT1
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)
active1 > U103^11
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)
mark1 > U103^11
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)
active1 > ISNATURAL1
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)
mark1 > ISNATURAL1
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)
mark1 > U102^11
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(mark(X1), X2) → U1021(X1, X2)
trivial
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)
active1 > U102^11
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, active(X2)) → U1021(X1, X2)
trivial
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, X2, mark(X3)) → U1011(X1, X2, X3)
mark1 > U101^11
U1011(X1, mark(X2), X3) → U1011(X1, X2, X3)
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(X1, mark(X2), X3) → U1011(X1, X2, X3)
mark1 > U101^12
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)
mark1 > U101^13
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(active(X1), X2, X3) → U1011(X1, X2, X3)
active1 > U101^11
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, active(X2), X3) → U1011(X1, X2, X3)
active1 > U101^12
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
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)