TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60023 ms.

The following DP Processors were used


Problem 1 remains open; application of the following processors failed [DependencyGraph (timeout)].

The following open problems remain:



Open Dependency Pair Problem 1

Dependency Pairs

U114#(ok(X1), ok(X2)) → U114#(X1, X2)proper#(cons(X1, X2)) → proper#(X1)
active#(U111(tt, L, N)) → U112#(isNatIListKind(L), L, N)U94#(mark(X1), X2, X3) → U94#(X1, X2, X3)
active#(U93(X1, X2, X3)) → active#(X1)proper#(U131(X1, X2, X3, X4)) → proper#(X3)
U51#(mark(X1), X2) → U51#(X1, X2)active#(U106(X)) → active#(X)
active#(isNatIListKind(cons(V1, V2))) → isNatKind#(V1)proper#(U112(X1, X2, X3)) → proper#(X3)
proper#(U132(X1, X2, X3, X4)) → proper#(X2)active#(U111(X1, X2, X3)) → active#(X1)
U81#(mark(X)) → U81#(X)proper#(U104(X1, X2, X3)) → proper#(X2)
proper#(U94(X1, X2, X3)) → proper#(X1)active#(length(X)) → active#(X)
active#(U101(tt, V1, V2)) → U102#(isNatKind(V1), V1, V2)active#(U91(tt, V1, V2)) → isNatKind#(V1)
active#(U121(X1, X2)) → active#(X1)proper#(U23(X)) → U23#(proper(X))
U43#(ok(X1), ok(X2), ok(X3)) → U43#(X1, X2, X3)proper#(U132(X1, X2, X3, X4)) → U132#(proper(X1), proper(X2), proper(X3), proper(X4))
active#(U32(tt, V)) → U33#(isNatList(V))U102#(mark(X1), X2, X3) → U102#(X1, X2, X3)
proper#(U113(X1, X2, X3)) → proper#(X3)proper#(isNatKind(X)) → isNatKind#(proper(X))
proper#(U104(X1, X2, X3)) → U104#(proper(X1), proper(X2), proper(X3))active#(U33(X)) → active#(X)
active#(U43(tt, V1, V2)) → U44#(isNatIListKind(V2), V1, V2)U45#(ok(X1), ok(X2)) → U45#(X1, X2)
active#(U102(X1, X2, X3)) → U102#(active(X1), X2, X3)active#(U93(tt, V1, V2)) → U94#(isNatIListKind(V2), V1, V2)
active#(U132(tt, IL, M, N)) → isNat#(M)proper#(U131(X1, X2, X3, X4)) → proper#(X4)
active#(U45(tt, V2)) → U46#(isNatIList(V2))active#(U44(X1, X2, X3)) → active#(X1)
active#(U52(X)) → active#(X)active#(U22(X1, X2)) → active#(X1)
proper#(U51(X1, X2)) → proper#(X2)proper#(U91(X1, X2, X3)) → proper#(X3)
proper#(U71(X)) → U71#(proper(X))U41#(ok(X1), ok(X2), ok(X3)) → U41#(X1, X2, X3)
active#(isNatKind(length(V1))) → U71#(isNatIListKind(V1))active#(U21(X1, X2)) → U21#(active(X1), X2)
active#(U12(tt, V1)) → isNatList#(V1)proper#(U91(X1, X2, X3)) → U91#(proper(X1), proper(X2), proper(X3))
proper#(U121(X1, X2)) → proper#(X1)U22#(ok(X1), ok(X2)) → U22#(X1, X2)
U111#(mark(X1), X2, X3) → U111#(X1, X2, X3)proper#(U134(X1, X2, X3, X4)) → proper#(X3)
U91#(ok(X1), ok(X2), ok(X3)) → U91#(X1, X2, X3)active#(U51(tt, V2)) → isNatIListKind#(V2)
active#(U106(X)) → U106#(active(X))proper#(U21(X1, X2)) → proper#(X1)
active#(U114(X1, X2)) → active#(X1)active#(U31(tt, V)) → U32#(isNatIListKind(V), V)
active#(U112(tt, L, N)) → U113#(isNat(N), L, N)active#(isNatKind(s(V1))) → U81#(isNatKind(V1))
U12#(ok(X1), ok(X2)) → U12#(X1, X2)active#(take(s(M), cons(N, IL))) → isNatIList#(IL)
cons#(ok(X1), ok(X2)) → cons#(X1, X2)proper#(U135(X1, X2, X3, X4)) → proper#(X1)
active#(U42(X1, X2, X3)) → active#(X1)active#(U101(tt, V1, V2)) → isNatKind#(V1)
proper#(U96(X)) → U96#(proper(X))proper#(U51(X1, X2)) → U51#(proper(X1), proper(X2))
U122#(ok(X)) → U122#(X)U61#(mark(X1), X2) → U61#(X1, X2)
active#(U51(X1, X2)) → U51#(active(X1), X2)active#(U101(X1, X2, X3)) → active#(X1)
proper#(U121(X1, X2)) → U121#(proper(X1), proper(X2))proper#(U41(X1, X2, X3)) → U41#(proper(X1), proper(X2), proper(X3))
proper#(U103(X1, X2, X3)) → proper#(X3)U61#(ok(X1), ok(X2)) → U61#(X1, X2)
U71#(mark(X)) → U71#(X)proper#(U106(X)) → proper#(X)
active#(U11(tt, V1)) → isNatIListKind#(V1)proper#(U111(X1, X2, X3)) → proper#(X2)
U52#(ok(X)) → U52#(X)take#(X1, mark(X2)) → take#(X1, X2)
active#(U93(X1, X2, X3)) → U93#(active(X1), X2, X3)active#(U134(X1, X2, X3, X4)) → U134#(active(X1), X2, X3, X4)
proper#(U131(X1, X2, X3, X4)) → proper#(X1)proper#(U136(X1, X2, X3, X4)) → U136#(proper(X1), proper(X2), proper(X3), proper(X4))
U32#(ok(X1), ok(X2)) → U32#(X1, X2)active#(U13(X)) → U13#(active(X))
proper#(isNatList(X)) → isNatList#(proper(X))proper#(U135(X1, X2, X3, X4)) → proper#(X3)
proper#(U45(X1, X2)) → proper#(X2)active#(isNat(length(V1))) → U11#(isNatIListKind(V1), V1)
active#(U33(X)) → U33#(active(X))proper#(take(X1, X2)) → take#(proper(X1), proper(X2))
active#(U96(X)) → U96#(active(X))U33#(ok(X)) → U33#(X)
active#(cons(X1, X2)) → active#(X1)active#(U43(tt, V1, V2)) → isNatIListKind#(V2)
proper#(U105(X1, X2)) → proper#(X1)U96#(ok(X)) → U96#(X)
proper#(U31(X1, X2)) → proper#(X2)proper#(U92(X1, X2, X3)) → U92#(proper(X1), proper(X2), proper(X3))
active#(U103(X1, X2, X3)) → U103#(active(X1), X2, X3)active#(U91(tt, V1, V2)) → U92#(isNatKind(V1), V1, V2)
proper#(U51(X1, X2)) → proper#(X1)active#(U113(X1, X2, X3)) → U113#(active(X1), X2, X3)
active#(U95(X1, X2)) → active#(X1)U134#(mark(X1), X2, X3, X4) → U134#(X1, X2, X3, X4)
U135#(ok(X1), ok(X2), ok(X3), ok(X4)) → U135#(X1, X2, X3, X4)proper#(take(X1, X2)) → proper#(X1)
active#(U114(tt, L)) → s#(length(L))proper#(U131(X1, X2, X3, X4)) → proper#(X2)
proper#(U42(X1, X2, X3)) → proper#(X2)proper#(U95(X1, X2)) → proper#(X2)
U103#(ok(X1), ok(X2), ok(X3)) → U103#(X1, X2, X3)U94#(ok(X1), ok(X2), ok(X3)) → U94#(X1, X2, X3)
active#(U105(tt, V2)) → isNatIList#(V2)active#(take(X1, X2)) → active#(X1)
proper#(take(X1, X2)) → proper#(X2)proper#(U33(X)) → U33#(proper(X))
s#(mark(X)) → s#(X)active#(U31(tt, V)) → isNatIListKind#(V)
proper#(U106(X)) → U106#(proper(X))active#(U45(X1, X2)) → U45#(active(X1), X2)
active#(U136(tt, IL, M, N)) → cons#(N, take(M, IL))active#(s(X)) → active#(X)
U105#(ok(X1), ok(X2)) → U105#(X1, X2)proper#(U46(X)) → proper#(X)
U52#(mark(X)) → U52#(X)U92#(ok(X1), ok(X2), ok(X3)) → U92#(X1, X2, X3)
active#(U105(tt, V2)) → U106#(isNatIList(V2))active#(isNatIList(V)) → U31#(isNatIListKind(V), V)
U122#(mark(X)) → U122#(X)U21#(ok(X1), ok(X2)) → U21#(X1, X2)
U42#(ok(X1), ok(X2), ok(X3)) → U42#(X1, X2, X3)proper#(U44(X1, X2, X3)) → proper#(X2)
U106#(ok(X)) → U106#(X)active#(U132(tt, IL, M, N)) → U133#(isNat(M), IL, M, N)
proper#(U11(X1, X2)) → proper#(X1)proper#(U91(X1, X2, X3)) → proper#(X2)
active#(U42(X1, X2, X3)) → U42#(active(X1), X2, X3)active#(U94(tt, V1, V2)) → U95#(isNat(V1), V2)
proper#(U41(X1, X2, X3)) → proper#(X2)proper#(U32(X1, X2)) → proper#(X2)
active#(take(X1, X2)) → take#(active(X1), X2)proper#(U133(X1, X2, X3, X4)) → proper#(X4)
proper#(isNatKind(X)) → proper#(X)proper#(U133(X1, X2, X3, X4)) → proper#(X2)
proper#(U111(X1, X2, X3)) → proper#(X1)active#(U22(tt, V1)) → isNat#(V1)
active#(U92(tt, V1, V2)) → isNatIListKind#(V2)active#(U94(X1, X2, X3)) → active#(X1)
active#(U42(tt, V1, V2)) → U43#(isNatIListKind(V2), V1, V2)active#(take(X1, X2)) → active#(X2)
active#(U62(X)) → active#(X)isNat#(ok(X)) → isNat#(X)
active#(isNatList(cons(V1, V2))) → U91#(isNatKind(V1), V1, V2)active#(U41(X1, X2, X3)) → active#(X1)
active#(isNatKind(length(V1))) → isNatIListKind#(V1)active#(U102(tt, V1, V2)) → isNatIListKind#(V2)
active#(U94(tt, V1, V2)) → isNat#(V1)proper#(U13(X)) → U13#(proper(X))
active#(U135(X1, X2, X3, X4)) → U135#(active(X1), X2, X3, X4)active#(U104(tt, V1, V2)) → U105#(isNat(V1), V2)
active#(U105(X1, X2)) → active#(X1)proper#(U101(X1, X2, X3)) → proper#(X3)
active#(U133(X1, X2, X3, X4)) → active#(X1)proper#(U93(X1, X2, X3)) → proper#(X1)
U131#(mark(X1), X2, X3, X4) → U131#(X1, X2, X3, X4)U22#(mark(X1), X2) → U22#(X1, X2)
proper#(U44(X1, X2, X3)) → proper#(X1)active#(U43(X1, X2, X3)) → active#(X1)
top#(ok(X)) → active#(X)active#(U91(X1, X2, X3)) → U91#(active(X1), X2, X3)
U136#(mark(X1), X2, X3, X4) → U136#(X1, X2, X3, X4)proper#(U103(X1, X2, X3)) → proper#(X1)
proper#(U134(X1, X2, X3, X4)) → U134#(proper(X1), proper(X2), proper(X3), proper(X4))proper#(U93(X1, X2, X3)) → proper#(X3)
U45#(mark(X1), X2) → U45#(X1, X2)U13#(mark(X)) → U13#(X)
proper#(U102(X1, X2, X3)) → U102#(proper(X1), proper(X2), proper(X3))active#(isNat(length(V1))) → isNatIListKind#(V1)
proper#(U81(X)) → U81#(proper(X))proper#(U114(X1, X2)) → U114#(proper(X1), proper(X2))
proper#(U42(X1, X2, X3)) → proper#(X1)U121#(ok(X1), ok(X2)) → U121#(X1, X2)
active#(U32(X1, X2)) → active#(X1)active#(U121(tt, IL)) → isNatIListKind#(IL)
proper#(s(X)) → s#(proper(X))active#(U46(X)) → U46#(active(X))
active#(U133(tt, IL, M, N)) → U134#(isNatKind(M), IL, M, N)active#(U136(X1, X2, X3, X4)) → active#(X1)
active#(U103(tt, V1, V2)) → isNatIListKind#(V2)proper#(U133(X1, X2, X3, X4)) → U133#(proper(X1), proper(X2), proper(X3), proper(X4))
top#(ok(X)) → top#(active(X))U92#(mark(X1), X2, X3) → U92#(X1, X2, X3)
U11#(ok(X1), ok(X2)) → U11#(X1, X2)active#(U136(tt, IL, M, N)) → take#(M, IL)
U102#(ok(X1), ok(X2), ok(X3)) → U102#(X1, X2, X3)active#(U45(tt, V2)) → isNatIList#(V2)
U93#(mark(X1), X2, X3) → U93#(X1, X2, X3)U42#(mark(X1), X2, X3) → U42#(X1, X2, X3)
active#(U45(X1, X2)) → active#(X1)U62#(ok(X)) → U62#(X)
proper#(U102(X1, X2, X3)) → proper#(X3)active#(U92(X1, X2, X3)) → U92#(active(X1), X2, X3)
proper#(U136(X1, X2, X3, X4)) → proper#(X4)active#(U134(tt, IL, M, N)) → isNat#(N)
proper#(U94(X1, X2, X3)) → proper#(X3)active#(U103(tt, V1, V2)) → U104#(isNatIListKind(V2), V1, V2)
proper#(U61(X1, X2)) → U61#(proper(X1), proper(X2))proper#(U102(X1, X2, X3)) → proper#(X1)
active#(U113(tt, L, N)) → U114#(isNatKind(N), L)active#(U132(X1, X2, X3, X4)) → U132#(active(X1), X2, X3, X4)
proper#(U41(X1, X2, X3)) → proper#(X3)proper#(U13(X)) → proper#(X)
active#(U132(X1, X2, X3, X4)) → active#(X1)proper#(U21(X1, X2)) → proper#(X2)
proper#(U122(X)) → proper#(X)active#(U31(X1, X2)) → U31#(active(X1), X2)
U136#(ok(X1), ok(X2), ok(X3), ok(X4)) → U136#(X1, X2, X3, X4)U112#(mark(X1), X2, X3) → U112#(X1, X2, X3)
proper#(U102(X1, X2, X3)) → proper#(X2)U41#(mark(X1), X2, X3) → U41#(X1, X2, X3)
proper#(isNatIListKind(X)) → isNatIListKind#(proper(X))U23#(ok(X)) → U23#(X)
active#(U112(X1, X2, X3)) → active#(X1)active#(U44(tt, V1, V2)) → isNat#(V1)
active#(isNatKind(s(V1))) → isNatKind#(V1)proper#(U21(X1, X2)) → U21#(proper(X1), proper(X2))
active#(length(X)) → length#(active(X))proper#(U43(X1, X2, X3)) → U43#(proper(X1), proper(X2), proper(X3))
active#(U104(tt, V1, V2)) → isNat#(V1)proper#(U81(X)) → proper#(X)
U46#(mark(X)) → U46#(X)active#(U131(X1, X2, X3, X4)) → U131#(active(X1), X2, X3, X4)
proper#(U92(X1, X2, X3)) → proper#(X2)proper#(U112(X1, X2, X3)) → proper#(X2)
U95#(mark(X1), X2) → U95#(X1, X2)proper#(U93(X1, X2, X3)) → proper#(X2)
active#(U12(tt, V1)) → U13#(isNatList(V1))active#(take(0, IL)) → U121#(isNatIList(IL), IL)
proper#(U134(X1, X2, X3, X4)) → proper#(X1)U21#(mark(X1), X2) → U21#(X1, X2)
active#(isNatList(cons(V1, V2))) → isNatKind#(V1)U46#(ok(X)) → U46#(X)
active#(U71(X)) → active#(X)proper#(U52(X)) → proper#(X)
proper#(U132(X1, X2, X3, X4)) → proper#(X1)proper#(length(X)) → length#(proper(X))
active#(U51(X1, X2)) → active#(X1)proper#(U132(X1, X2, X3, X4)) → proper#(X3)
U11#(mark(X1), X2) → U11#(X1, X2)proper#(U95(X1, X2)) → U95#(proper(X1), proper(X2))
active#(isNatIListKind(cons(V1, V2))) → U51#(isNatKind(V1), V2)proper#(U92(X1, X2, X3)) → proper#(X1)
active#(U134(X1, X2, X3, X4)) → active#(X1)U91#(mark(X1), X2, X3) → U91#(X1, X2, X3)
proper#(U62(X)) → proper#(X)active#(U122(X)) → U122#(active(X))
active#(U135(tt, IL, M, N)) → isNatKind#(N)active#(isNatIList(cons(V1, V2))) → U41#(isNatKind(V1), V1, V2)
top#(mark(X)) → proper#(X)length#(mark(X)) → length#(X)
isNatKind#(ok(X)) → isNatKind#(X)active#(U101(X1, X2, X3)) → U101#(active(X1), X2, X3)
U43#(mark(X1), X2, X3) → U43#(X1, X2, X3)active#(U41(tt, V1, V2)) → isNatKind#(V1)
active#(U61(X1, X2)) → active#(X1)proper#(U104(X1, X2, X3)) → proper#(X1)
proper#(U43(X1, X2, X3)) → proper#(X3)active#(U21(tt, V1)) → isNatKind#(V1)
U132#(mark(X1), X2, X3, X4) → U132#(X1, X2, X3, X4)U135#(mark(X1), X2, X3, X4) → U135#(X1, X2, X3, X4)
proper#(U42(X1, X2, X3)) → U42#(proper(X1), proper(X2), proper(X3))proper#(U101(X1, X2, X3)) → proper#(X2)
proper#(U134(X1, X2, X3, X4)) → proper#(X4)proper#(U94(X1, X2, X3)) → proper#(X2)
proper#(U43(X1, X2, X3)) → proper#(X1)active#(U111(X1, X2, X3)) → U111#(active(X1), X2, X3)
proper#(U112(X1, X2, X3)) → U112#(proper(X1), proper(X2), proper(X3))proper#(U44(X1, X2, X3)) → U44#(proper(X1), proper(X2), proper(X3))
U104#(ok(X1), ok(X2), ok(X3)) → U104#(X1, X2, X3)active#(U41(X1, X2, X3)) → U41#(active(X1), X2, X3)
active#(U44(tt, V1, V2)) → U45#(isNat(V1), V2)active#(U131(tt, IL, M, N)) → U132#(isNatIListKind(IL), IL, M, N)
active#(length(cons(N, L))) → U111#(isNatList(L), L, N)proper#(U45(X1, X2)) → U45#(proper(X1), proper(X2))
active#(isNatIListKind(take(V1, V2))) → isNatKind#(V1)active#(U92(tt, V1, V2)) → U93#(isNatIListKind(V2), V1, V2)
proper#(U41(X1, X2, X3)) → proper#(X1)U93#(ok(X1), ok(X2), ok(X3)) → U93#(X1, X2, X3)
active#(U31(X1, X2)) → active#(X1)proper#(isNatList(X)) → proper#(X)
active#(U13(X)) → active#(X)take#(ok(X1), ok(X2)) → take#(X1, X2)
U101#(ok(X1), ok(X2), ok(X3)) → U101#(X1, X2, X3)proper#(U22(X1, X2)) → U22#(proper(X1), proper(X2))
active#(U52(X)) → U52#(active(X))proper#(isNat(X)) → proper#(X)
proper#(U94(X1, X2, X3)) → U94#(proper(X1), proper(X2), proper(X3))proper#(U101(X1, X2, X3)) → proper#(X1)
proper#(U132(X1, X2, X3, X4)) → proper#(X4)active#(isNatList(take(V1, V2))) → U101#(isNatKind(V1), V1, V2)
U33#(mark(X)) → U33#(X)active#(U11(X1, X2)) → U11#(active(X1), X2)
proper#(U92(X1, X2, X3)) → proper#(X3)proper#(U121(X1, X2)) → proper#(X2)
active#(U131(X1, X2, X3, X4)) → active#(X1)active#(isNat(s(V1))) → U21#(isNatKind(V1), V1)
active#(U114(X1, X2)) → U114#(active(X1), X2)active#(U131(tt, IL, M, N)) → isNatIListKind#(IL)
proper#(U31(X1, X2)) → U31#(proper(X1), proper(X2))proper#(U103(X1, X2, X3)) → U103#(proper(X1), proper(X2), proper(X3))
U81#(ok(X)) → U81#(X)active#(U41(tt, V1, V2)) → U42#(isNatKind(V1), V1, V2)
U31#(ok(X1), ok(X2)) → U31#(X1, X2)active#(U136(X1, X2, X3, X4)) → U136#(active(X1), X2, X3, X4)
active#(U22(X1, X2)) → U22#(active(X1), X2)active#(U133(tt, IL, M, N)) → isNatKind#(M)
active#(isNatList(take(V1, V2))) → isNatKind#(V1)active#(U95(tt, V2)) → isNatList#(V2)
isNatIListKind#(ok(X)) → isNatIListKind#(X)proper#(U12(X1, X2)) → proper#(X2)
proper#(U11(X1, X2)) → U11#(proper(X1), proper(X2))active#(U21(tt, V1)) → U22#(isNatKind(V1), V1)
active#(U133(X1, X2, X3, X4)) → U133#(active(X1), X2, X3, X4)proper#(U61(X1, X2)) → proper#(X2)
proper#(U96(X)) → proper#(X)length#(ok(X)) → length#(X)
U12#(mark(X1), X2) → U12#(X1, X2)proper#(U113(X1, X2, X3)) → proper#(X2)
proper#(U32(X1, X2)) → proper#(X1)U105#(mark(X1), X2) → U105#(X1, X2)
proper#(U104(X1, X2, X3)) → proper#(X3)active#(U102(tt, V1, V2)) → U103#(isNatIListKind(V2), V1, V2)
active#(U92(X1, X2, X3)) → active#(X1)active#(U81(X)) → active#(X)
active#(U22(tt, V1)) → U23#(isNat(V1))proper#(s(X)) → proper#(X)
active#(U51(tt, V2)) → U52#(isNatIListKind(V2))active#(U95(X1, X2)) → U95#(active(X1), X2)
proper#(U95(X1, X2)) → proper#(X1)proper#(U32(X1, X2)) → U32#(proper(X1), proper(X2))
active#(U113(tt, L, N)) → isNatKind#(N)take#(mark(X1), X2) → take#(X1, X2)
U44#(ok(X1), ok(X2), ok(X3)) → U44#(X1, X2, X3)U132#(ok(X1), ok(X2), ok(X3), ok(X4)) → U132#(X1, X2, X3, X4)
active#(U61(tt, V2)) → isNatIListKind#(V2)active#(U105(X1, X2)) → U105#(active(X1), X2)
active#(length(cons(N, L))) → isNatList#(L)proper#(U43(X1, X2, X3)) → proper#(X2)
active#(U11(tt, V1)) → U12#(isNatIListKind(V1), V1)active#(U44(X1, X2, X3)) → U44#(active(X1), X2, X3)
proper#(U135(X1, X2, X3, X4)) → proper#(X4)proper#(U135(X1, X2, X3, X4)) → U135#(proper(X1), proper(X2), proper(X3), proper(X4))
active#(U103(X1, X2, X3)) → active#(X1)proper#(U12(X1, X2)) → proper#(X1)
U121#(mark(X1), X2) → U121#(X1, X2)U104#(mark(X1), X2, X3) → U104#(X1, X2, X3)
proper#(U135(X1, X2, X3, X4)) → proper#(X2)active#(U134(tt, IL, M, N)) → U135#(isNat(N), IL, M, N)
active#(U111(tt, L, N)) → isNatIListKind#(L)active#(U104(X1, X2, X3)) → U104#(active(X1), X2, X3)
active#(U102(X1, X2, X3)) → active#(X1)active#(take(0, IL)) → isNatIList#(IL)
proper#(U33(X)) → proper#(X)proper#(U71(X)) → proper#(X)
active#(isNatIList(V)) → isNatIListKind#(V)proper#(U133(X1, X2, X3, X4)) → proper#(X3)
active#(U32(tt, V)) → isNatList#(V)proper#(U52(X)) → U52#(proper(X))
proper#(U91(X1, X2, X3)) → proper#(X1)active#(U104(X1, X2, X3)) → active#(X1)
active#(U113(X1, X2, X3)) → active#(X1)U134#(ok(X1), ok(X2), ok(X3), ok(X4)) → U134#(X1, X2, X3, X4)
active#(U95(tt, V2)) → U96#(isNatList(V2))proper#(U11(X1, X2)) → proper#(X2)
active#(U42(tt, V1, V2)) → isNatIListKind#(V2)proper#(U122(X)) → U122#(proper(X))
proper#(U23(X)) → proper#(X)U44#(mark(X1), X2, X3) → U44#(X1, X2, X3)
proper#(U136(X1, X2, X3, X4)) → proper#(X3)proper#(U112(X1, X2, X3)) → proper#(X1)
proper#(U136(X1, X2, X3, X4)) → proper#(X2)active#(U46(X)) → active#(X)
proper#(U131(X1, X2, X3, X4)) → U131#(proper(X1), proper(X2), proper(X3), proper(X4))proper#(U46(X)) → U46#(proper(X))
isNatIList#(ok(X)) → isNatIList#(X)proper#(U113(X1, X2, X3)) → proper#(X1)
active#(U12(X1, X2)) → U12#(active(X1), X2)active#(isNat(s(V1))) → isNatKind#(V1)
proper#(U42(X1, X2, X3)) → proper#(X3)proper#(U62(X)) → U62#(proper(X))
active#(U112(X1, X2, X3)) → U112#(active(X1), X2, X3)U103#(mark(X1), X2, X3) → U103#(X1, X2, X3)
active#(U135(X1, X2, X3, X4)) → active#(X1)proper#(isNatIListKind(X)) → proper#(X)
cons#(mark(X1), X2) → cons#(X1, X2)proper#(U113(X1, X2, X3)) → U113#(proper(X1), proper(X2), proper(X3))
proper#(U103(X1, X2, X3)) → proper#(X2)active#(U114(tt, L)) → length#(L)
active#(U135(tt, IL, M, N)) → U136#(isNatKind(N), IL, M, N)active#(take(s(M), cons(N, IL))) → U131#(isNatIList(IL), IL, M, N)
proper#(U93(X1, X2, X3)) → U93#(proper(X1), proper(X2), proper(X3))proper#(U133(X1, X2, X3, X4)) → proper#(X1)
U62#(mark(X)) → U62#(X)proper#(isNat(X)) → isNat#(proper(X))
U114#(mark(X1), X2) → U114#(X1, X2)active#(U61(tt, V2)) → U62#(isNatIListKind(V2))
U51#(ok(X1), ok(X2)) → U51#(X1, X2)proper#(U45(X1, X2)) → proper#(X1)
active#(U12(X1, X2)) → active#(X1)U112#(ok(X1), ok(X2), ok(X3)) → U112#(X1, X2, X3)
active#(s(X)) → s#(active(X))s#(ok(X)) → s#(X)
proper#(length(X)) → proper#(X)active#(U32(X1, X2)) → U32#(active(X1), X2)
active#(take(X1, X2)) → take#(X1, active(X2))active#(U23(X)) → active#(X)
active#(zeros) → cons#(0, zeros)U96#(mark(X)) → U96#(X)
active#(U96(X)) → active#(X)U106#(mark(X)) → U106#(X)
proper#(U105(X1, X2)) → proper#(X2)proper#(U114(X1, X2)) → proper#(X2)
active#(U121(tt, IL)) → U122#(isNatIListKind(IL))proper#(U31(X1, X2)) → proper#(X1)
U71#(ok(X)) → U71#(X)U23#(mark(X)) → U23#(X)
active#(U81(X)) → U81#(active(X))proper#(isNatIList(X)) → isNatIList#(proper(X))
active#(cons(X1, X2)) → cons#(active(X1), X2)active#(U61(X1, X2)) → U61#(active(X1), X2)
active#(U91(X1, X2, X3)) → active#(X1)active#(U11(X1, X2)) → active#(X1)
active#(U23(X)) → U23#(active(X))active#(U62(X)) → U62#(active(X))
U133#(mark(X1), X2, X3, X4) → U133#(X1, X2, X3, X4)top#(mark(X)) → top#(proper(X))
proper#(cons(X1, X2)) → proper#(X2)proper#(isNatIList(X)) → proper#(X)
U13#(ok(X)) → U13#(X)proper#(U136(X1, X2, X3, X4)) → proper#(X1)
U95#(ok(X1), ok(X2)) → U95#(X1, X2)active#(U43(X1, X2, X3)) → U43#(active(X1), X2, X3)
active#(U94(X1, X2, X3)) → U94#(active(X1), X2, X3)proper#(U22(X1, X2)) → proper#(X2)
isNatList#(ok(X)) → isNatList#(X)active#(U122(X)) → active#(X)
proper#(U111(X1, X2, X3)) → proper#(X3)proper#(U101(X1, X2, X3)) → U101#(proper(X1), proper(X2), proper(X3))
active#(U71(X)) → U71#(active(X))U133#(ok(X1), ok(X2), ok(X3), ok(X4)) → U133#(X1, X2, X3, X4)
proper#(U105(X1, X2)) → U105#(proper(X1), proper(X2))proper#(U134(X1, X2, X3, X4)) → proper#(X2)
proper#(U12(X1, X2)) → U12#(proper(X1), proper(X2))U113#(ok(X1), ok(X2), ok(X3)) → U113#(X1, X2, X3)
active#(U93(tt, V1, V2)) → isNatIListKind#(V2)U111#(ok(X1), ok(X2), ok(X3)) → U111#(X1, X2, X3)
U101#(mark(X1), X2, X3) → U101#(X1, X2, X3)proper#(U22(X1, X2)) → proper#(X1)
active#(U112(tt, L, N)) → isNat#(N)proper#(U114(X1, X2)) → proper#(X1)
active#(isNatIList(cons(V1, V2))) → isNatKind#(V1)proper#(U111(X1, X2, X3)) → U111#(proper(X1), proper(X2), proper(X3))
U31#(mark(X1), X2) → U31#(X1, X2)proper#(U61(X1, X2)) → proper#(X1)
active#(U121(X1, X2)) → U121#(active(X1), X2)proper#(U44(X1, X2, X3)) → proper#(X3)
active#(U21(X1, X2)) → active#(X1)proper#(cons(X1, X2)) → cons#(proper(X1), proper(X2))
U32#(mark(X1), X2) → U32#(X1, X2)U113#(mark(X1), X2, X3) → U113#(X1, X2, X3)
active#(isNatIListKind(take(V1, V2))) → U61#(isNatKind(V1), V2)U131#(ok(X1), ok(X2), ok(X3), ok(X4)) → U131#(X1, X2, X3, X4)

Rewrite Rules

active(zeros) → mark(cons(0, zeros))active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))active(U96(tt)) → mark(tt)
active(isNat(0)) → mark(tt)active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0)) → mark(tt)active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0, IL)) → mark(U121(isNatIList(IL), IL))active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)active(s(X)) → s(active(X))
active(length(X)) → length(active(X))active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0) → ok(0)proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: U104, U105, U106, U112, U111, U62, U114, U61, U113, ok, proper, U23, U21, U22, isNatIList, isNatKind, mark, U71, 0, U122, U121, zeros, active, U31, U32, U33, isNatIListKind, U96, U94, U95, isNat, U46, U45, U132, U44, U131, U43, U93, U134, U42, U92, U133, U41, U91, U136, U135, length, top, cons, isNatList, s, U51, tt, take, U81, U52, U11, U12, U13, U102, U103, U101, nil