(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ACTIVE(zeros) → MARK(cons(0, zeros))
ACTIVE(zeros) → CONS(0, zeros)
ACTIVE(U11(tt, V1)) → MARK(U12(isNatIListKind(V1), V1))
ACTIVE(U11(tt, V1)) → U121(isNatIListKind(V1), V1)
ACTIVE(U11(tt, V1)) → ISNATILISTKIND(V1)
ACTIVE(U12(tt, V1)) → MARK(U13(isNatList(V1)))
ACTIVE(U12(tt, V1)) → U131(isNatList(V1))
ACTIVE(U12(tt, V1)) → ISNATLIST(V1)
ACTIVE(U13(tt)) → MARK(tt)
ACTIVE(U21(tt, V1)) → MARK(U22(isNatKind(V1), V1))
ACTIVE(U21(tt, V1)) → U221(isNatKind(V1), V1)
ACTIVE(U21(tt, V1)) → ISNATKIND(V1)
ACTIVE(U22(tt, V1)) → MARK(U23(isNat(V1)))
ACTIVE(U22(tt, V1)) → U231(isNat(V1))
ACTIVE(U22(tt, V1)) → ISNAT(V1)
ACTIVE(U23(tt)) → MARK(tt)
ACTIVE(U31(tt, V)) → MARK(U32(isNatIListKind(V), V))
ACTIVE(U31(tt, V)) → U321(isNatIListKind(V), V)
ACTIVE(U31(tt, V)) → ISNATILISTKIND(V)
ACTIVE(U32(tt, V)) → MARK(U33(isNatList(V)))
ACTIVE(U32(tt, V)) → U331(isNatList(V))
ACTIVE(U32(tt, V)) → ISNATLIST(V)
ACTIVE(U33(tt)) → MARK(tt)
ACTIVE(U41(tt, V1, V2)) → MARK(U42(isNatKind(V1), V1, V2))
ACTIVE(U41(tt, V1, V2)) → U421(isNatKind(V1), V1, V2)
ACTIVE(U41(tt, V1, V2)) → ISNATKIND(V1)
ACTIVE(U42(tt, V1, V2)) → MARK(U43(isNatIListKind(V2), V1, V2))
ACTIVE(U42(tt, V1, V2)) → U431(isNatIListKind(V2), V1, V2)
ACTIVE(U42(tt, V1, V2)) → ISNATILISTKIND(V2)
ACTIVE(U43(tt, V1, V2)) → MARK(U44(isNatIListKind(V2), V1, V2))
ACTIVE(U43(tt, V1, V2)) → U441(isNatIListKind(V2), V1, V2)
ACTIVE(U43(tt, V1, V2)) → ISNATILISTKIND(V2)
ACTIVE(U44(tt, V1, V2)) → MARK(U45(isNat(V1), V2))
ACTIVE(U44(tt, V1, V2)) → U451(isNat(V1), V2)
ACTIVE(U44(tt, V1, V2)) → ISNAT(V1)
ACTIVE(U45(tt, V2)) → MARK(U46(isNatIList(V2)))
ACTIVE(U45(tt, V2)) → U461(isNatIList(V2))
ACTIVE(U45(tt, V2)) → ISNATILIST(V2)
ACTIVE(U46(tt)) → MARK(tt)
ACTIVE(U51(tt, V2)) → MARK(U52(isNatIListKind(V2)))
ACTIVE(U51(tt, V2)) → U521(isNatIListKind(V2))
ACTIVE(U51(tt, V2)) → ISNATILISTKIND(V2)
ACTIVE(U52(tt)) → MARK(tt)
ACTIVE(U61(tt)) → MARK(tt)
ACTIVE(U71(tt)) → MARK(tt)
ACTIVE(U81(tt, V1, V2)) → MARK(U82(isNatKind(V1), V1, V2))
ACTIVE(U81(tt, V1, V2)) → U821(isNatKind(V1), V1, V2)
ACTIVE(U81(tt, V1, V2)) → ISNATKIND(V1)
ACTIVE(U82(tt, V1, V2)) → MARK(U83(isNatIListKind(V2), V1, V2))
ACTIVE(U82(tt, V1, V2)) → U831(isNatIListKind(V2), V1, V2)
ACTIVE(U82(tt, V1, V2)) → ISNATILISTKIND(V2)
ACTIVE(U83(tt, V1, V2)) → MARK(U84(isNatIListKind(V2), V1, V2))
ACTIVE(U83(tt, V1, V2)) → U841(isNatIListKind(V2), V1, V2)
ACTIVE(U83(tt, V1, V2)) → ISNATILISTKIND(V2)
ACTIVE(U84(tt, V1, V2)) → MARK(U85(isNat(V1), V2))
ACTIVE(U84(tt, V1, V2)) → U851(isNat(V1), V2)
ACTIVE(U84(tt, V1, V2)) → ISNAT(V1)
ACTIVE(U85(tt, V2)) → MARK(U86(isNatList(V2)))
ACTIVE(U85(tt, V2)) → U861(isNatList(V2))
ACTIVE(U85(tt, V2)) → ISNATLIST(V2)
ACTIVE(U86(tt)) → MARK(tt)
ACTIVE(U91(tt, L, N)) → MARK(U92(isNatIListKind(L), L, N))
ACTIVE(U91(tt, L, N)) → U921(isNatIListKind(L), L, N)
ACTIVE(U91(tt, L, N)) → ISNATILISTKIND(L)
ACTIVE(U92(tt, L, N)) → MARK(U93(isNat(N), L, N))
ACTIVE(U92(tt, L, N)) → U931(isNat(N), L, N)
ACTIVE(U92(tt, L, N)) → ISNAT(N)
ACTIVE(U93(tt, L, N)) → MARK(U94(isNatKind(N), L))
ACTIVE(U93(tt, L, N)) → U941(isNatKind(N), L)
ACTIVE(U93(tt, L, N)) → ISNATKIND(N)
ACTIVE(U94(tt, L)) → MARK(s(length(L)))
ACTIVE(U94(tt, L)) → S(length(L))
ACTIVE(U94(tt, L)) → LENGTH(L)
ACTIVE(isNat(0)) → MARK(tt)
ACTIVE(isNat(length(V1))) → MARK(U11(isNatIListKind(V1), V1))
ACTIVE(isNat(length(V1))) → U111(isNatIListKind(V1), V1)
ACTIVE(isNat(length(V1))) → ISNATILISTKIND(V1)
ACTIVE(isNat(s(V1))) → MARK(U21(isNatKind(V1), V1))
ACTIVE(isNat(s(V1))) → U211(isNatKind(V1), V1)
ACTIVE(isNat(s(V1))) → ISNATKIND(V1)
ACTIVE(isNatIList(V)) → MARK(U31(isNatIListKind(V), V))
ACTIVE(isNatIList(V)) → U311(isNatIListKind(V), V)
ACTIVE(isNatIList(V)) → ISNATILISTKIND(V)
ACTIVE(isNatIList(zeros)) → MARK(tt)
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNatKind(V1), V1, V2))
ACTIVE(isNatIList(cons(V1, V2))) → U411(isNatKind(V1), V1, V2)
ACTIVE(isNatIList(cons(V1, V2))) → ISNATKIND(V1)
ACTIVE(isNatIListKind(nil)) → MARK(tt)
ACTIVE(isNatIListKind(zeros)) → MARK(tt)
ACTIVE(isNatIListKind(cons(V1, V2))) → MARK(U51(isNatKind(V1), V2))
ACTIVE(isNatIListKind(cons(V1, V2))) → U511(isNatKind(V1), V2)
ACTIVE(isNatIListKind(cons(V1, V2))) → ISNATKIND(V1)
ACTIVE(isNatKind(0)) → MARK(tt)
ACTIVE(isNatKind(length(V1))) → MARK(U61(isNatIListKind(V1)))
ACTIVE(isNatKind(length(V1))) → U611(isNatIListKind(V1))
ACTIVE(isNatKind(length(V1))) → ISNATILISTKIND(V1)
ACTIVE(isNatKind(s(V1))) → MARK(U71(isNatKind(V1)))
ACTIVE(isNatKind(s(V1))) → U711(isNatKind(V1))
ACTIVE(isNatKind(s(V1))) → ISNATKIND(V1)
ACTIVE(isNatList(nil)) → MARK(tt)
ACTIVE(isNatList(cons(V1, V2))) → MARK(U81(isNatKind(V1), V1, V2))
ACTIVE(isNatList(cons(V1, V2))) → U811(isNatKind(V1), V1, V2)
ACTIVE(isNatList(cons(V1, V2))) → ISNATKIND(V1)
ACTIVE(length(nil)) → MARK(0)
ACTIVE(length(cons(N, L))) → MARK(U91(isNatList(L), L, N))
ACTIVE(length(cons(N, L))) → U911(isNatList(L), L, N)
ACTIVE(length(cons(N, L))) → ISNATLIST(L)
MARK(zeros) → ACTIVE(zeros)
MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
MARK(cons(X1, X2)) → CONS(mark(X1), X2)
MARK(cons(X1, X2)) → MARK(X1)
MARK(0) → ACTIVE(0)
MARK(U11(X1, X2)) → ACTIVE(U11(mark(X1), X2))
MARK(U11(X1, X2)) → U111(mark(X1), X2)
MARK(U11(X1, X2)) → MARK(X1)
MARK(tt) → ACTIVE(tt)
MARK(U12(X1, X2)) → ACTIVE(U12(mark(X1), X2))
MARK(U12(X1, X2)) → U121(mark(X1), X2)
MARK(U12(X1, X2)) → MARK(X1)
MARK(isNatIListKind(X)) → ACTIVE(isNatIListKind(X))
MARK(U13(X)) → ACTIVE(U13(mark(X)))
MARK(U13(X)) → U131(mark(X))
MARK(U13(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
MARK(U21(X1, X2)) → U211(mark(X1), X2)
MARK(U21(X1, X2)) → MARK(X1)
MARK(U22(X1, X2)) → ACTIVE(U22(mark(X1), X2))
MARK(U22(X1, X2)) → U221(mark(X1), X2)
MARK(U22(X1, X2)) → MARK(X1)
MARK(isNatKind(X)) → ACTIVE(isNatKind(X))
MARK(U23(X)) → ACTIVE(U23(mark(X)))
MARK(U23(X)) → U231(mark(X))
MARK(U23(X)) → MARK(X)
MARK(isNat(X)) → ACTIVE(isNat(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(U32(X1, X2)) → ACTIVE(U32(mark(X1), X2))
MARK(U32(X1, X2)) → U321(mark(X1), X2)
MARK(U32(X1, X2)) → MARK(X1)
MARK(U33(X)) → ACTIVE(U33(mark(X)))
MARK(U33(X)) → U331(mark(X))
MARK(U33(X)) → MARK(X)
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, X3)) → ACTIVE(U42(mark(X1), X2, X3))
MARK(U42(X1, X2, X3)) → U421(mark(X1), X2, X3)
MARK(U42(X1, X2, X3)) → MARK(X1)
MARK(U43(X1, X2, X3)) → ACTIVE(U43(mark(X1), X2, X3))
MARK(U43(X1, X2, X3)) → U431(mark(X1), X2, X3)
MARK(U43(X1, X2, X3)) → MARK(X1)
MARK(U44(X1, X2, X3)) → ACTIVE(U44(mark(X1), X2, X3))
MARK(U44(X1, X2, X3)) → U441(mark(X1), X2, X3)
MARK(U44(X1, X2, X3)) → MARK(X1)
MARK(U45(X1, X2)) → ACTIVE(U45(mark(X1), X2))
MARK(U45(X1, X2)) → U451(mark(X1), X2)
MARK(U45(X1, X2)) → MARK(X1)
MARK(U46(X)) → ACTIVE(U46(mark(X)))
MARK(U46(X)) → U461(mark(X))
MARK(U46(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
MARK(U51(X1, X2)) → U511(mark(X1), X2)
MARK(U51(X1, X2)) → MARK(X1)
MARK(U52(X)) → ACTIVE(U52(mark(X)))
MARK(U52(X)) → U521(mark(X))
MARK(U52(X)) → MARK(X)
MARK(U61(X)) → ACTIVE(U61(mark(X)))
MARK(U61(X)) → U611(mark(X))
MARK(U61(X)) → MARK(X)
MARK(U71(X)) → ACTIVE(U71(mark(X)))
MARK(U71(X)) → U711(mark(X))
MARK(U71(X)) → MARK(X)
MARK(U81(X1, X2, X3)) → ACTIVE(U81(mark(X1), X2, X3))
MARK(U81(X1, X2, X3)) → U811(mark(X1), X2, X3)
MARK(U81(X1, X2, X3)) → MARK(X1)
MARK(U82(X1, X2, X3)) → ACTIVE(U82(mark(X1), X2, X3))
MARK(U82(X1, X2, X3)) → U821(mark(X1), X2, X3)
MARK(U82(X1, X2, X3)) → MARK(X1)
MARK(U83(X1, X2, X3)) → ACTIVE(U83(mark(X1), X2, X3))
MARK(U83(X1, X2, X3)) → U831(mark(X1), X2, X3)
MARK(U83(X1, X2, X3)) → MARK(X1)
MARK(U84(X1, X2, X3)) → ACTIVE(U84(mark(X1), X2, X3))
MARK(U84(X1, X2, X3)) → U841(mark(X1), X2, X3)
MARK(U84(X1, X2, X3)) → MARK(X1)
MARK(U85(X1, X2)) → ACTIVE(U85(mark(X1), X2))
MARK(U85(X1, X2)) → U851(mark(X1), X2)
MARK(U85(X1, X2)) → MARK(X1)
MARK(U86(X)) → ACTIVE(U86(mark(X)))
MARK(U86(X)) → U861(mark(X))
MARK(U86(X)) → MARK(X)
MARK(U91(X1, X2, X3)) → ACTIVE(U91(mark(X1), X2, X3))
MARK(U91(X1, X2, X3)) → U911(mark(X1), X2, X3)
MARK(U91(X1, X2, X3)) → MARK(X1)
MARK(U92(X1, X2, X3)) → ACTIVE(U92(mark(X1), X2, X3))
MARK(U92(X1, X2, X3)) → U921(mark(X1), X2, X3)
MARK(U92(X1, X2, X3)) → MARK(X1)
MARK(U93(X1, X2, X3)) → ACTIVE(U93(mark(X1), X2, X3))
MARK(U93(X1, X2, X3)) → U931(mark(X1), X2, X3)
MARK(U93(X1, X2, X3)) → MARK(X1)
MARK(U94(X1, X2)) → ACTIVE(U94(mark(X1), X2))
MARK(U94(X1, X2)) → U941(mark(X1), X2)
MARK(U94(X1, X2)) → MARK(X1)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → S(mark(X))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
MARK(length(X)) → LENGTH(mark(X))
MARK(length(X)) → MARK(X)
MARK(nil) → ACTIVE(nil)
CONS(mark(X1), X2) → CONS(X1, X2)
CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(X1, mark(X2)) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
U121(mark(X1), X2) → U121(X1, X2)
U121(X1, mark(X2)) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
ISNATILISTKIND(mark(X)) → ISNATILISTKIND(X)
ISNATILISTKIND(active(X)) → ISNATILISTKIND(X)
U131(mark(X)) → U131(X)
U131(active(X)) → U131(X)
ISNATLIST(mark(X)) → ISNATLIST(X)
ISNATLIST(active(X)) → ISNATLIST(X)
U211(mark(X1), X2) → U211(X1, X2)
U211(X1, mark(X2)) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
U221(mark(X1), X2) → U221(X1, X2)
U221(X1, mark(X2)) → U221(X1, X2)
U221(active(X1), X2) → U221(X1, X2)
U221(X1, active(X2)) → U221(X1, X2)
ISNATKIND(mark(X)) → ISNATKIND(X)
ISNATKIND(active(X)) → ISNATKIND(X)
U231(mark(X)) → U231(X)
U231(active(X)) → U231(X)
ISNAT(mark(X)) → ISNAT(X)
ISNAT(active(X)) → ISNAT(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)
U321(mark(X1), X2) → U321(X1, X2)
U321(X1, mark(X2)) → U321(X1, X2)
U321(active(X1), X2) → U321(X1, X2)
U321(X1, active(X2)) → U321(X1, X2)
U331(mark(X)) → U331(X)
U331(active(X)) → U331(X)
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, X3) → U421(X1, X2, X3)
U421(X1, mark(X2), X3) → U421(X1, X2, X3)
U421(X1, X2, mark(X3)) → U421(X1, X2, X3)
U421(active(X1), X2, X3) → U421(X1, X2, X3)
U421(X1, active(X2), X3) → U421(X1, X2, X3)
U421(X1, X2, active(X3)) → U421(X1, X2, X3)
U431(mark(X1), X2, X3) → U431(X1, X2, X3)
U431(X1, mark(X2), X3) → U431(X1, X2, X3)
U431(X1, X2, mark(X3)) → U431(X1, X2, X3)
U431(active(X1), X2, X3) → U431(X1, X2, X3)
U431(X1, active(X2), X3) → U431(X1, X2, X3)
U431(X1, X2, active(X3)) → U431(X1, X2, X3)
U441(mark(X1), X2, X3) → U441(X1, X2, X3)
U441(X1, mark(X2), X3) → U441(X1, X2, X3)
U441(X1, X2, mark(X3)) → U441(X1, X2, X3)
U441(active(X1), X2, X3) → U441(X1, X2, X3)
U441(X1, active(X2), X3) → U441(X1, X2, X3)
U441(X1, X2, active(X3)) → U441(X1, X2, X3)
U451(mark(X1), X2) → U451(X1, X2)
U451(X1, mark(X2)) → U451(X1, X2)
U451(active(X1), X2) → U451(X1, X2)
U451(X1, active(X2)) → U451(X1, X2)
U461(mark(X)) → U461(X)
U461(active(X)) → U461(X)
ISNATILIST(mark(X)) → ISNATILIST(X)
ISNATILIST(active(X)) → ISNATILIST(X)
U511(mark(X1), X2) → U511(X1, X2)
U511(X1, mark(X2)) → U511(X1, X2)
U511(active(X1), X2) → U511(X1, X2)
U511(X1, active(X2)) → U511(X1, X2)
U521(mark(X)) → U521(X)
U521(active(X)) → U521(X)
U611(mark(X)) → U611(X)
U611(active(X)) → U611(X)
U711(mark(X)) → U711(X)
U711(active(X)) → U711(X)
U811(mark(X1), X2, X3) → U811(X1, X2, X3)
U811(X1, mark(X2), X3) → U811(X1, X2, X3)
U811(X1, X2, mark(X3)) → U811(X1, X2, X3)
U811(active(X1), X2, X3) → U811(X1, X2, X3)
U811(X1, active(X2), X3) → U811(X1, X2, X3)
U811(X1, X2, active(X3)) → U811(X1, X2, X3)
U821(mark(X1), X2, X3) → U821(X1, X2, X3)
U821(X1, mark(X2), X3) → U821(X1, X2, X3)
U821(X1, X2, mark(X3)) → U821(X1, X2, X3)
U821(active(X1), X2, X3) → U821(X1, X2, X3)
U821(X1, active(X2), X3) → U821(X1, X2, X3)
U821(X1, X2, active(X3)) → U821(X1, X2, X3)
U831(mark(X1), X2, X3) → U831(X1, X2, X3)
U831(X1, mark(X2), X3) → U831(X1, X2, X3)
U831(X1, X2, mark(X3)) → U831(X1, X2, X3)
U831(active(X1), X2, X3) → U831(X1, X2, X3)
U831(X1, active(X2), X3) → U831(X1, X2, X3)
U831(X1, X2, active(X3)) → U831(X1, X2, X3)
U841(mark(X1), X2, X3) → U841(X1, X2, X3)
U841(X1, mark(X2), X3) → U841(X1, X2, X3)
U841(X1, X2, mark(X3)) → U841(X1, X2, X3)
U841(active(X1), X2, X3) → U841(X1, X2, X3)
U841(X1, active(X2), X3) → U841(X1, X2, X3)
U841(X1, X2, active(X3)) → U841(X1, X2, X3)
U851(mark(X1), X2) → U851(X1, X2)
U851(X1, mark(X2)) → U851(X1, X2)
U851(active(X1), X2) → U851(X1, X2)
U851(X1, active(X2)) → U851(X1, X2)
U861(mark(X)) → U861(X)
U861(active(X)) → U861(X)
U911(mark(X1), X2, X3) → U911(X1, X2, X3)
U911(X1, mark(X2), X3) → U911(X1, X2, X3)
U911(X1, X2, mark(X3)) → U911(X1, X2, X3)
U911(active(X1), X2, X3) → U911(X1, X2, X3)
U911(X1, active(X2), X3) → U911(X1, X2, X3)
U911(X1, X2, active(X3)) → U911(X1, X2, X3)
U921(mark(X1), X2, X3) → U921(X1, X2, X3)
U921(X1, mark(X2), X3) → U921(X1, X2, X3)
U921(X1, X2, mark(X3)) → U921(X1, X2, X3)
U921(active(X1), X2, X3) → U921(X1, X2, X3)
U921(X1, active(X2), X3) → U921(X1, X2, X3)
U921(X1, X2, active(X3)) → U921(X1, X2, X3)
U931(mark(X1), X2, X3) → U931(X1, X2, X3)
U931(X1, mark(X2), X3) → U931(X1, X2, X3)
U931(X1, X2, mark(X3)) → U931(X1, X2, X3)
U931(active(X1), X2, X3) → U931(X1, X2, X3)
U931(X1, active(X2), X3) → U931(X1, X2, X3)
U931(X1, X2, active(X3)) → U931(X1, X2, X3)
U941(mark(X1), X2) → U941(X1, X2)
U941(X1, mark(X2)) → U941(X1, X2)
U941(active(X1), X2) → U941(X1, X2)
U941(X1, active(X2)) → U941(X1, X2)
S(mark(X)) → S(X)
S(active(X)) → S(X)
LENGTH(mark(X)) → LENGTH(X)
LENGTH(active(X)) → LENGTH(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 38 SCCs with 111 less nodes.

(4) Complex Obligation (AND)

(5) Obligation:

Q DP problem:
The TRS P consists of the following rules:

LENGTH(active(X)) → LENGTH(X)
LENGTH(mark(X)) → LENGTH(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(6) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


LENGTH(active(X)) → LENGTH(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
LENGTH(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

LENGTH(mark(X)) → LENGTH(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(8) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


LENGTH(mark(X)) → LENGTH(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > LENGTH1

Status:
LENGTH1: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(9) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(10) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(11) TRUE

(12) Obligation:

Q DP problem:
The TRS P consists of the following rules:

S(active(X)) → S(X)
S(mark(X)) → S(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(13) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


S(active(X)) → S(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
S(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(14) Obligation:

Q DP problem:
The TRS P consists of the following rules:

S(mark(X)) → S(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(15) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


S(mark(X)) → S(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > S1

Status:
S1: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(16) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(17) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(18) TRUE

(19) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U941(X1, mark(X2)) → U941(X1, X2)
U941(mark(X1), X2) → U941(X1, X2)
U941(active(X1), X2) → U941(X1, X2)
U941(X1, active(X2)) → U941(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(20) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U941(X1, mark(X2)) → U941(X1, X2)
U941(X1, active(X2)) → U941(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U941(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(21) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U941(mark(X1), X2) → U941(X1, X2)
U941(active(X1), X2) → U941(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(22) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U941(mark(X1), X2) → U941(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U941(x1, x2)  =  U941(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U94^11

Status:
U94^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(23) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U941(active(X1), X2) → U941(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(24) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U941(active(X1), X2) → U941(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U94^12

Status:
U94^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(25) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(26) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(27) TRUE

(28) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U931(X1, mark(X2), X3) → U931(X1, X2, X3)
U931(mark(X1), X2, X3) → U931(X1, X2, X3)
U931(X1, X2, mark(X3)) → U931(X1, X2, X3)
U931(active(X1), X2, X3) → U931(X1, X2, X3)
U931(X1, active(X2), X3) → U931(X1, X2, X3)
U931(X1, X2, active(X3)) → U931(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(29) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U931(mark(X1), X2, X3) → U931(X1, X2, X3)
U931(active(X1), X2, X3) → U931(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U931(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(30) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U931(X1, mark(X2), X3) → U931(X1, X2, X3)
U931(X1, X2, mark(X3)) → U931(X1, X2, X3)
U931(X1, active(X2), X3) → U931(X1, X2, X3)
U931(X1, X2, active(X3)) → U931(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(31) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U931(X1, mark(X2), X3) → U931(X1, X2, X3)
U931(X1, X2, mark(X3)) → U931(X1, X2, X3)
U931(X1, active(X2), X3) → U931(X1, X2, X3)
U931(X1, X2, active(X3)) → U931(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U931(x1, x2, x3)  =  U931(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U93^12
active1 > U93^12

Status:
U93^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(32) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(33) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(34) TRUE

(35) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U921(X1, mark(X2), X3) → U921(X1, X2, X3)
U921(mark(X1), X2, X3) → U921(X1, X2, X3)
U921(X1, X2, mark(X3)) → U921(X1, X2, X3)
U921(active(X1), X2, X3) → U921(X1, X2, X3)
U921(X1, active(X2), X3) → U921(X1, X2, X3)
U921(X1, X2, active(X3)) → U921(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(36) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U921(mark(X1), X2, X3) → U921(X1, X2, X3)
U921(active(X1), X2, X3) → U921(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U921(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(37) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U921(X1, mark(X2), X3) → U921(X1, X2, X3)
U921(X1, X2, mark(X3)) → U921(X1, X2, X3)
U921(X1, active(X2), X3) → U921(X1, X2, X3)
U921(X1, X2, active(X3)) → U921(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(38) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U921(X1, mark(X2), X3) → U921(X1, X2, X3)
U921(X1, X2, mark(X3)) → U921(X1, X2, X3)
U921(X1, active(X2), X3) → U921(X1, X2, X3)
U921(X1, X2, active(X3)) → U921(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U921(x1, x2, x3)  =  U921(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U92^12
active1 > U92^12

Status:
U92^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(39) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(40) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(41) TRUE

(42) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U911(X1, mark(X2), X3) → U911(X1, X2, X3)
U911(mark(X1), X2, X3) → U911(X1, X2, X3)
U911(X1, X2, mark(X3)) → U911(X1, X2, X3)
U911(active(X1), X2, X3) → U911(X1, X2, X3)
U911(X1, active(X2), X3) → U911(X1, X2, X3)
U911(X1, X2, active(X3)) → U911(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(43) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U911(mark(X1), X2, X3) → U911(X1, X2, X3)
U911(active(X1), X2, X3) → U911(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U911(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(44) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U911(X1, mark(X2), X3) → U911(X1, X2, X3)
U911(X1, X2, mark(X3)) → U911(X1, X2, X3)
U911(X1, active(X2), X3) → U911(X1, X2, X3)
U911(X1, X2, active(X3)) → U911(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(45) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U911(X1, mark(X2), X3) → U911(X1, X2, X3)
U911(X1, X2, mark(X3)) → U911(X1, X2, X3)
U911(X1, active(X2), X3) → U911(X1, X2, X3)
U911(X1, X2, active(X3)) → U911(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U911(x1, x2, x3)  =  U911(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U91^12
active1 > U91^12

Status:
U91^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(46) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(47) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(48) TRUE

(49) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U861(active(X)) → U861(X)
U861(mark(X)) → U861(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(50) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U861(active(X)) → U861(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U861(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(51) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U861(mark(X)) → U861(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(52) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U861(mark(X)) → U861(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U86^11

Status:
U86^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(53) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(54) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(55) TRUE

(56) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U851(X1, mark(X2)) → U851(X1, X2)
U851(mark(X1), X2) → U851(X1, X2)
U851(active(X1), X2) → U851(X1, X2)
U851(X1, active(X2)) → U851(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(57) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U851(X1, mark(X2)) → U851(X1, X2)
U851(X1, active(X2)) → U851(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U851(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(58) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U851(mark(X1), X2) → U851(X1, X2)
U851(active(X1), X2) → U851(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(59) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U851(mark(X1), X2) → U851(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U851(x1, x2)  =  U851(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U85^11

Status:
U85^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(60) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U851(active(X1), X2) → U851(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(61) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U851(active(X1), X2) → U851(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U85^12

Status:
U85^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(62) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(63) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(64) TRUE

(65) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U841(X1, mark(X2), X3) → U841(X1, X2, X3)
U841(mark(X1), X2, X3) → U841(X1, X2, X3)
U841(X1, X2, mark(X3)) → U841(X1, X2, X3)
U841(active(X1), X2, X3) → U841(X1, X2, X3)
U841(X1, active(X2), X3) → U841(X1, X2, X3)
U841(X1, X2, active(X3)) → U841(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(66) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U841(mark(X1), X2, X3) → U841(X1, X2, X3)
U841(active(X1), X2, X3) → U841(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U841(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(67) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U841(X1, mark(X2), X3) → U841(X1, X2, X3)
U841(X1, X2, mark(X3)) → U841(X1, X2, X3)
U841(X1, active(X2), X3) → U841(X1, X2, X3)
U841(X1, X2, active(X3)) → U841(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(68) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U841(X1, mark(X2), X3) → U841(X1, X2, X3)
U841(X1, X2, mark(X3)) → U841(X1, X2, X3)
U841(X1, active(X2), X3) → U841(X1, X2, X3)
U841(X1, X2, active(X3)) → U841(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U841(x1, x2, x3)  =  U841(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U84^12
active1 > U84^12

Status:
U84^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(69) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(70) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(71) TRUE

(72) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U831(X1, mark(X2), X3) → U831(X1, X2, X3)
U831(mark(X1), X2, X3) → U831(X1, X2, X3)
U831(X1, X2, mark(X3)) → U831(X1, X2, X3)
U831(active(X1), X2, X3) → U831(X1, X2, X3)
U831(X1, active(X2), X3) → U831(X1, X2, X3)
U831(X1, X2, active(X3)) → U831(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(73) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U831(mark(X1), X2, X3) → U831(X1, X2, X3)
U831(active(X1), X2, X3) → U831(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U831(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(74) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U831(X1, mark(X2), X3) → U831(X1, X2, X3)
U831(X1, X2, mark(X3)) → U831(X1, X2, X3)
U831(X1, active(X2), X3) → U831(X1, X2, X3)
U831(X1, X2, active(X3)) → U831(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(75) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U831(X1, mark(X2), X3) → U831(X1, X2, X3)
U831(X1, X2, mark(X3)) → U831(X1, X2, X3)
U831(X1, active(X2), X3) → U831(X1, X2, X3)
U831(X1, X2, active(X3)) → U831(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U831(x1, x2, x3)  =  U831(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U83^12
active1 > U83^12

Status:
U83^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(76) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(77) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(78) TRUE

(79) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U821(X1, mark(X2), X3) → U821(X1, X2, X3)
U821(mark(X1), X2, X3) → U821(X1, X2, X3)
U821(X1, X2, mark(X3)) → U821(X1, X2, X3)
U821(active(X1), X2, X3) → U821(X1, X2, X3)
U821(X1, active(X2), X3) → U821(X1, X2, X3)
U821(X1, X2, active(X3)) → U821(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(80) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U821(mark(X1), X2, X3) → U821(X1, X2, X3)
U821(active(X1), X2, X3) → U821(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U821(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(81) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U821(X1, mark(X2), X3) → U821(X1, X2, X3)
U821(X1, X2, mark(X3)) → U821(X1, X2, X3)
U821(X1, active(X2), X3) → U821(X1, X2, X3)
U821(X1, X2, active(X3)) → U821(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(82) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U821(X1, mark(X2), X3) → U821(X1, X2, X3)
U821(X1, X2, mark(X3)) → U821(X1, X2, X3)
U821(X1, active(X2), X3) → U821(X1, X2, X3)
U821(X1, X2, active(X3)) → U821(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U821(x1, x2, x3)  =  U821(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U82^12
active1 > U82^12

Status:
U82^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(83) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(84) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(85) TRUE

(86) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U811(X1, mark(X2), X3) → U811(X1, X2, X3)
U811(mark(X1), X2, X3) → U811(X1, X2, X3)
U811(X1, X2, mark(X3)) → U811(X1, X2, X3)
U811(active(X1), X2, X3) → U811(X1, X2, X3)
U811(X1, active(X2), X3) → U811(X1, X2, X3)
U811(X1, X2, active(X3)) → U811(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(87) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U811(mark(X1), X2, X3) → U811(X1, X2, X3)
U811(active(X1), X2, X3) → U811(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U811(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(88) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U811(X1, mark(X2), X3) → U811(X1, X2, X3)
U811(X1, X2, mark(X3)) → U811(X1, X2, X3)
U811(X1, active(X2), X3) → U811(X1, X2, X3)
U811(X1, X2, active(X3)) → U811(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(89) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U811(X1, mark(X2), X3) → U811(X1, X2, X3)
U811(X1, X2, mark(X3)) → U811(X1, X2, X3)
U811(X1, active(X2), X3) → U811(X1, X2, X3)
U811(X1, X2, active(X3)) → U811(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U811(x1, x2, x3)  =  U811(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U81^12
active1 > U81^12

Status:
U81^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(90) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(91) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(92) TRUE

(93) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(active(X)) → U711(X)
U711(mark(X)) → U711(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(94) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(active(X)) → U711(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U711(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(95) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U711(mark(X)) → U711(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(96) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U711(mark(X)) → U711(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U71^11

Status:
U71^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(97) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(98) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(99) TRUE

(100) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U611(active(X)) → U611(X)
U611(mark(X)) → U611(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(101) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U611(active(X)) → U611(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U611(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(102) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U611(mark(X)) → U611(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(103) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U611(mark(X)) → U611(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U61^11

Status:
U61^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(104) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(105) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(106) TRUE

(107) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U521(active(X)) → U521(X)
U521(mark(X)) → U521(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(108) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U521(active(X)) → U521(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U521(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(109) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U521(mark(X)) → U521(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(110) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U521(mark(X)) → U521(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U52^11

Status:
U52^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(111) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(112) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(113) TRUE

(114) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(X1, mark(X2)) → U511(X1, X2)
U511(mark(X1), X2) → U511(X1, X2)
U511(active(X1), X2) → U511(X1, X2)
U511(X1, active(X2)) → U511(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(115) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(X1, mark(X2)) → U511(X1, X2)
U511(X1, active(X2)) → U511(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U511(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(116) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(mark(X1), X2) → U511(X1, X2)
U511(active(X1), X2) → U511(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(117) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(mark(X1), X2) → U511(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U511(x1, x2)  =  U511(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U51^11

Status:
U51^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(118) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U511(active(X1), X2) → U511(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(119) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U511(active(X1), X2) → U511(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U51^12

Status:
U51^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(120) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(121) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(122) TRUE

(123) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATILIST(active(X)) → ISNATILIST(X)
ISNATILIST(mark(X)) → ISNATILIST(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(124) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATILIST(active(X)) → ISNATILIST(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISNATILIST(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(125) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATILIST(mark(X)) → ISNATILIST(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(126) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATILIST(mark(X)) → ISNATILIST(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > ISNATILIST1

Status:
ISNATILIST1: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(127) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(128) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(129) TRUE

(130) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U461(active(X)) → U461(X)
U461(mark(X)) → U461(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(131) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U461(active(X)) → U461(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U461(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(132) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U461(mark(X)) → U461(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(133) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U461(mark(X)) → U461(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U46^11

Status:
U46^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(134) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(135) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(136) TRUE

(137) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U451(X1, mark(X2)) → U451(X1, X2)
U451(mark(X1), X2) → U451(X1, X2)
U451(active(X1), X2) → U451(X1, X2)
U451(X1, active(X2)) → U451(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(138) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U451(X1, mark(X2)) → U451(X1, X2)
U451(X1, active(X2)) → U451(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U451(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(139) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U451(mark(X1), X2) → U451(X1, X2)
U451(active(X1), X2) → U451(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(140) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U451(mark(X1), X2) → U451(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U451(x1, x2)  =  U451(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U45^11

Status:
U45^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(141) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U451(active(X1), X2) → U451(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(142) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U451(active(X1), X2) → U451(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U45^12

Status:
U45^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(143) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(144) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(145) TRUE

(146) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U441(X1, mark(X2), X3) → U441(X1, X2, X3)
U441(mark(X1), X2, X3) → U441(X1, X2, X3)
U441(X1, X2, mark(X3)) → U441(X1, X2, X3)
U441(active(X1), X2, X3) → U441(X1, X2, X3)
U441(X1, active(X2), X3) → U441(X1, X2, X3)
U441(X1, X2, active(X3)) → U441(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(147) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U441(mark(X1), X2, X3) → U441(X1, X2, X3)
U441(active(X1), X2, X3) → U441(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U441(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(148) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U441(X1, mark(X2), X3) → U441(X1, X2, X3)
U441(X1, X2, mark(X3)) → U441(X1, X2, X3)
U441(X1, active(X2), X3) → U441(X1, X2, X3)
U441(X1, X2, active(X3)) → U441(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(149) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U441(X1, mark(X2), X3) → U441(X1, X2, X3)
U441(X1, X2, mark(X3)) → U441(X1, X2, X3)
U441(X1, active(X2), X3) → U441(X1, X2, X3)
U441(X1, X2, active(X3)) → U441(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U441(x1, x2, x3)  =  U441(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U44^12
active1 > U44^12

Status:
U44^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(150) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(151) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(152) TRUE

(153) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U431(X1, mark(X2), X3) → U431(X1, X2, X3)
U431(mark(X1), X2, X3) → U431(X1, X2, X3)
U431(X1, X2, mark(X3)) → U431(X1, X2, X3)
U431(active(X1), X2, X3) → U431(X1, X2, X3)
U431(X1, active(X2), X3) → U431(X1, X2, X3)
U431(X1, X2, active(X3)) → U431(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(154) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U431(mark(X1), X2, X3) → U431(X1, X2, X3)
U431(active(X1), X2, X3) → U431(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U431(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(155) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U431(X1, mark(X2), X3) → U431(X1, X2, X3)
U431(X1, X2, mark(X3)) → U431(X1, X2, X3)
U431(X1, active(X2), X3) → U431(X1, X2, X3)
U431(X1, X2, active(X3)) → U431(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(156) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U431(X1, mark(X2), X3) → U431(X1, X2, X3)
U431(X1, X2, mark(X3)) → U431(X1, X2, X3)
U431(X1, active(X2), X3) → U431(X1, X2, X3)
U431(X1, X2, active(X3)) → U431(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U431(x1, x2, x3)  =  U431(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U43^12
active1 > U43^12

Status:
U43^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(157) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(158) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(159) TRUE

(160) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U421(X1, mark(X2), X3) → U421(X1, X2, X3)
U421(mark(X1), X2, X3) → U421(X1, X2, X3)
U421(X1, X2, mark(X3)) → U421(X1, X2, X3)
U421(active(X1), X2, X3) → U421(X1, X2, X3)
U421(X1, active(X2), X3) → U421(X1, X2, X3)
U421(X1, X2, active(X3)) → U421(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(161) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U421(mark(X1), X2, X3) → U421(X1, X2, X3)
U421(active(X1), X2, X3) → U421(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U421(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(162) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U421(X1, mark(X2), X3) → U421(X1, X2, X3)
U421(X1, X2, mark(X3)) → U421(X1, X2, X3)
U421(X1, active(X2), X3) → U421(X1, X2, X3)
U421(X1, X2, active(X3)) → U421(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(163) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U421(X1, mark(X2), X3) → U421(X1, X2, X3)
U421(X1, X2, mark(X3)) → U421(X1, X2, X3)
U421(X1, active(X2), X3) → U421(X1, X2, X3)
U421(X1, X2, active(X3)) → U421(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U421(x1, x2, x3)  =  U421(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U42^12
active1 > U42^12

Status:
U42^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(164) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(165) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(166) TRUE

(167) Obligation:

Q DP problem:
The TRS P consists of the following rules:

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)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(168) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(mark(X1), X2, X3) → U411(X1, X2, X3)
U411(active(X1), X2, X3) → U411(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U411(x1, x2, x3)  =  x1
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(169) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U411(X1, mark(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, mark(X3)) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, active(X3)) → U411(X1, X2, X3)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(170) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U411(X1, mark(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, mark(X3)) → U411(X1, X2, X3)
U411(X1, active(X2), X3) → U411(X1, X2, X3)
U411(X1, X2, active(X3)) → U411(X1, X2, X3)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U411(x1, x2, x3)  =  U411(x2, x3)
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
mark1 > U41^12
active1 > U41^12

Status:
U41^12: multiset
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(171) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(172) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(173) TRUE

(174) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U331(active(X)) → U331(X)
U331(mark(X)) → U331(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(175) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U331(active(X)) → U331(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U331(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(176) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U331(mark(X)) → U331(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(177) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U331(mark(X)) → U331(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U33^11

Status:
U33^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(178) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(179) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(180) TRUE

(181) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(X1, mark(X2)) → U321(X1, X2)
U321(mark(X1), X2) → U321(X1, X2)
U321(active(X1), X2) → U321(X1, X2)
U321(X1, active(X2)) → U321(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(182) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(X1, mark(X2)) → U321(X1, X2)
U321(X1, active(X2)) → U321(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U321(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(183) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(mark(X1), X2) → U321(X1, X2)
U321(active(X1), X2) → U321(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(184) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(mark(X1), X2) → U321(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U321(x1, x2)  =  U321(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U32^11

Status:
U32^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(185) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U321(active(X1), X2) → U321(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(186) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U321(active(X1), X2) → U321(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U32^12

Status:
U32^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(187) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(188) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(189) TRUE

(190) Obligation:

Q DP problem:
The TRS P consists of the following rules:

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)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(191) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(X1, mark(X2)) → U311(X1, X2)
U311(X1, active(X2)) → U311(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U311(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(192) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(mark(X1), X2) → U311(X1, X2)
U311(active(X1), X2) → U311(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(193) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(mark(X1), X2) → U311(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U311(x1, x2)  =  U311(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U31^11

Status:
U31^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(194) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U311(active(X1), X2) → U311(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(195) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U311(active(X1), X2) → U311(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U31^12

Status:
U31^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(196) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(197) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(198) TRUE

(199) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNAT(active(X)) → ISNAT(X)
ISNAT(mark(X)) → ISNAT(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(200) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNAT(active(X)) → ISNAT(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISNAT(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(201) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNAT(mark(X)) → ISNAT(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(202) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNAT(mark(X)) → ISNAT(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > ISNAT1

Status:
ISNAT1: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(203) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(204) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(205) TRUE

(206) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U231(active(X)) → U231(X)
U231(mark(X)) → U231(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(207) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U231(active(X)) → U231(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U231(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(208) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U231(mark(X)) → U231(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(209) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U231(mark(X)) → U231(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U23^11

Status:
U23^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(210) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(211) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(212) TRUE

(213) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATKIND(active(X)) → ISNATKIND(X)
ISNATKIND(mark(X)) → ISNATKIND(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(214) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATKIND(active(X)) → ISNATKIND(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISNATKIND(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(215) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATKIND(mark(X)) → ISNATKIND(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(216) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATKIND(mark(X)) → ISNATKIND(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > ISNATKIND1

Status:
ISNATKIND1: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(217) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(218) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(219) TRUE

(220) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U221(X1, mark(X2)) → U221(X1, X2)
U221(mark(X1), X2) → U221(X1, X2)
U221(active(X1), X2) → U221(X1, X2)
U221(X1, active(X2)) → U221(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(221) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U221(X1, mark(X2)) → U221(X1, X2)
U221(X1, active(X2)) → U221(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U221(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(222) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U221(mark(X1), X2) → U221(X1, X2)
U221(active(X1), X2) → U221(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(223) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U221(mark(X1), X2) → U221(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U221(x1, x2)  =  U221(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U22^11

Status:
U22^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(224) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U221(active(X1), X2) → U221(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(225) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U221(active(X1), X2) → U221(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U22^12

Status:
U22^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(226) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(227) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(228) TRUE

(229) Obligation:

Q DP problem:
The TRS P consists of the following rules:

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)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(230) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(X1, mark(X2)) → U211(X1, X2)
U211(X1, active(X2)) → U211(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U211(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(231) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(mark(X1), X2) → U211(X1, X2)
U211(active(X1), X2) → U211(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(232) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(mark(X1), X2) → U211(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U211(x1, x2)  =  U211(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U21^11

Status:
U21^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(233) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U211(active(X1), X2) → U211(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(234) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U211(active(X1), X2) → U211(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U21^12

Status:
U21^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(235) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(236) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(237) TRUE

(238) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATLIST(active(X)) → ISNATLIST(X)
ISNATLIST(mark(X)) → ISNATLIST(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(239) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATLIST(active(X)) → ISNATLIST(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISNATLIST(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(240) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATLIST(mark(X)) → ISNATLIST(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(241) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATLIST(mark(X)) → ISNATLIST(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > ISNATLIST1

Status:
ISNATLIST1: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(242) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(243) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(244) TRUE

(245) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U131(active(X)) → U131(X)
U131(mark(X)) → U131(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(246) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U131(active(X)) → U131(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U131(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(247) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U131(mark(X)) → U131(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(248) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U131(mark(X)) → U131(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > U13^11

Status:
U13^11: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(249) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(250) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(251) TRUE

(252) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATILISTKIND(active(X)) → ISNATILISTKIND(X)
ISNATILISTKIND(mark(X)) → ISNATILISTKIND(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(253) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATILISTKIND(active(X)) → ISNATILISTKIND(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
ISNATILISTKIND(x1)  =  x1
active(x1)  =  active(x1)
mark(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
trivial

Status:
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(254) Obligation:

Q DP problem:
The TRS P consists of the following rules:

ISNATILISTKIND(mark(X)) → ISNATILISTKIND(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(255) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


ISNATILISTKIND(mark(X)) → ISNATILISTKIND(X)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
mark1 > ISNATILISTKIND1

Status:
ISNATILISTKIND1: [1]
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(256) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(257) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(258) TRUE

(259) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(X1, mark(X2)) → U121(X1, X2)
U121(mark(X1), X2) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(260) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(X1, mark(X2)) → U121(X1, X2)
U121(X1, active(X2)) → U121(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U121(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(261) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(mark(X1), X2) → U121(X1, X2)
U121(active(X1), X2) → U121(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(262) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(mark(X1), X2) → U121(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U121(x1, x2)  =  U121(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U12^11

Status:
U12^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(263) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U121(active(X1), X2) → U121(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(264) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U121(active(X1), X2) → U121(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U12^12

Status:
U12^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(265) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(266) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(267) TRUE

(268) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(X1, mark(X2)) → U111(X1, X2)
U111(mark(X1), X2) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(269) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(X1, mark(X2)) → U111(X1, X2)
U111(X1, active(X2)) → U111(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U111(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(270) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(mark(X1), X2) → U111(X1, X2)
U111(active(X1), X2) → U111(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(271) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(mark(X1), X2) → U111(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
U111(x1, x2)  =  U111(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > U11^11

Status:
U11^11: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(272) Obligation:

Q DP problem:
The TRS P consists of the following rules:

U111(active(X1), X2) → U111(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(273) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


U111(active(X1), X2) → U111(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > U11^12

Status:
U11^12: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(274) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(275) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(276) TRUE

(277) Obligation:

Q DP problem:
The TRS P consists of the following rules:

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)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(278) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CONS(X1, mark(X2)) → CONS(X1, X2)
CONS(X1, active(X2)) → CONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CONS(x1, x2)  =  x2
mark(x1)  =  mark(x1)
active(x1)  =  active(x1)

Recursive path order with status [RPO].
Precedence:
trivial

Status:
mark1: multiset
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(279) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CONS(mark(X1), X2) → CONS(X1, X2)
CONS(active(X1), X2) → CONS(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(280) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CONS(mark(X1), X2) → CONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Combined order from the following AFS and order.
CONS(x1, x2)  =  CONS(x1)
mark(x1)  =  mark(x1)
active(x1)  =  x1

Recursive path order with status [RPO].
Precedence:
mark1 > CONS1

Status:
CONS1: multiset
mark1: multiset

The following usable rules [FROCOS05] were oriented: none

(281) Obligation:

Q DP problem:
The TRS P consists of the following rules:

CONS(active(X1), X2) → CONS(X1, X2)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(282) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


CONS(active(X1), X2) → CONS(X1, X2)
The remaining pairs can at least be oriented weakly.
Used ordering: Recursive path order with status [RPO].
Precedence:
active1 > CONS2

Status:
CONS2: [1,2]
active1: multiset

The following usable rules [FROCOS05] were oriented: none

(283) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(284) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(285) TRUE

(286) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MARK(cons(X1, X2)) → ACTIVE(cons(mark(X1), X2))
ACTIVE(U11(tt, V1)) → MARK(U12(isNatIListKind(V1), V1))
MARK(cons(X1, X2)) → MARK(X1)
MARK(zeros) → ACTIVE(zeros)
ACTIVE(zeros) → MARK(cons(0, zeros))
MARK(U11(X1, X2)) → ACTIVE(U11(mark(X1), X2))
ACTIVE(U12(tt, V1)) → MARK(U13(isNatList(V1)))
MARK(U11(X1, X2)) → MARK(X1)
MARK(U12(X1, X2)) → ACTIVE(U12(mark(X1), X2))
ACTIVE(U21(tt, V1)) → MARK(U22(isNatKind(V1), V1))
MARK(U12(X1, X2)) → MARK(X1)
MARK(isNatIListKind(X)) → ACTIVE(isNatIListKind(X))
ACTIVE(U22(tt, V1)) → MARK(U23(isNat(V1)))
MARK(U13(X)) → ACTIVE(U13(mark(X)))
ACTIVE(U31(tt, V)) → MARK(U32(isNatIListKind(V), V))
MARK(U13(X)) → MARK(X)
MARK(isNatList(X)) → ACTIVE(isNatList(X))
ACTIVE(U32(tt, V)) → MARK(U33(isNatList(V)))
MARK(U21(X1, X2)) → ACTIVE(U21(mark(X1), X2))
ACTIVE(U41(tt, V1, V2)) → MARK(U42(isNatKind(V1), V1, V2))
MARK(U21(X1, X2)) → MARK(X1)
MARK(U22(X1, X2)) → ACTIVE(U22(mark(X1), X2))
ACTIVE(U42(tt, V1, V2)) → MARK(U43(isNatIListKind(V2), V1, V2))
MARK(U22(X1, X2)) → MARK(X1)
MARK(isNatKind(X)) → ACTIVE(isNatKind(X))
ACTIVE(U43(tt, V1, V2)) → MARK(U44(isNatIListKind(V2), V1, V2))
MARK(U23(X)) → ACTIVE(U23(mark(X)))
ACTIVE(U44(tt, V1, V2)) → MARK(U45(isNat(V1), V2))
MARK(U23(X)) → MARK(X)
MARK(isNat(X)) → ACTIVE(isNat(X))
ACTIVE(U45(tt, V2)) → MARK(U46(isNatIList(V2)))
MARK(U31(X1, X2)) → ACTIVE(U31(mark(X1), X2))
ACTIVE(U51(tt, V2)) → MARK(U52(isNatIListKind(V2)))
MARK(U31(X1, X2)) → MARK(X1)
MARK(U32(X1, X2)) → ACTIVE(U32(mark(X1), X2))
ACTIVE(U81(tt, V1, V2)) → MARK(U82(isNatKind(V1), V1, V2))
MARK(U32(X1, X2)) → MARK(X1)
MARK(U33(X)) → ACTIVE(U33(mark(X)))
ACTIVE(U82(tt, V1, V2)) → MARK(U83(isNatIListKind(V2), V1, V2))
MARK(U33(X)) → MARK(X)
MARK(U41(X1, X2, X3)) → ACTIVE(U41(mark(X1), X2, X3))
ACTIVE(U83(tt, V1, V2)) → MARK(U84(isNatIListKind(V2), V1, V2))
MARK(U41(X1, X2, X3)) → MARK(X1)
MARK(U42(X1, X2, X3)) → ACTIVE(U42(mark(X1), X2, X3))
ACTIVE(U84(tt, V1, V2)) → MARK(U85(isNat(V1), V2))
MARK(U42(X1, X2, X3)) → MARK(X1)
MARK(U43(X1, X2, X3)) → ACTIVE(U43(mark(X1), X2, X3))
ACTIVE(U85(tt, V2)) → MARK(U86(isNatList(V2)))
MARK(U43(X1, X2, X3)) → MARK(X1)
MARK(U44(X1, X2, X3)) → ACTIVE(U44(mark(X1), X2, X3))
ACTIVE(U91(tt, L, N)) → MARK(U92(isNatIListKind(L), L, N))
MARK(U44(X1, X2, X3)) → MARK(X1)
MARK(U45(X1, X2)) → ACTIVE(U45(mark(X1), X2))
ACTIVE(U92(tt, L, N)) → MARK(U93(isNat(N), L, N))
MARK(U45(X1, X2)) → MARK(X1)
MARK(U46(X)) → ACTIVE(U46(mark(X)))
ACTIVE(U93(tt, L, N)) → MARK(U94(isNatKind(N), L))
MARK(U46(X)) → MARK(X)
MARK(isNatIList(X)) → ACTIVE(isNatIList(X))
ACTIVE(U94(tt, L)) → MARK(s(length(L)))
MARK(U51(X1, X2)) → ACTIVE(U51(mark(X1), X2))
ACTIVE(isNat(length(V1))) → MARK(U11(isNatIListKind(V1), V1))
MARK(U51(X1, X2)) → MARK(X1)
MARK(U52(X)) → ACTIVE(U52(mark(X)))
ACTIVE(isNat(s(V1))) → MARK(U21(isNatKind(V1), V1))
MARK(U52(X)) → MARK(X)
MARK(U61(X)) → ACTIVE(U61(mark(X)))
ACTIVE(isNatIList(V)) → MARK(U31(isNatIListKind(V), V))
MARK(U61(X)) → MARK(X)
MARK(U71(X)) → ACTIVE(U71(mark(X)))
ACTIVE(isNatIList(cons(V1, V2))) → MARK(U41(isNatKind(V1), V1, V2))
MARK(U71(X)) → MARK(X)
MARK(U81(X1, X2, X3)) → ACTIVE(U81(mark(X1), X2, X3))
ACTIVE(isNatIListKind(cons(V1, V2))) → MARK(U51(isNatKind(V1), V2))
MARK(U81(X1, X2, X3)) → MARK(X1)
MARK(U82(X1, X2, X3)) → ACTIVE(U82(mark(X1), X2, X3))
ACTIVE(isNatKind(length(V1))) → MARK(U61(isNatIListKind(V1)))
MARK(U82(X1, X2, X3)) → MARK(X1)
MARK(U83(X1, X2, X3)) → ACTIVE(U83(mark(X1), X2, X3))
ACTIVE(isNatKind(s(V1))) → MARK(U71(isNatKind(V1)))
MARK(U83(X1, X2, X3)) → MARK(X1)
MARK(U84(X1, X2, X3)) → ACTIVE(U84(mark(X1), X2, X3))
ACTIVE(isNatList(cons(V1, V2))) → MARK(U81(isNatKind(V1), V1, V2))
MARK(U84(X1, X2, X3)) → MARK(X1)
MARK(U85(X1, X2)) → ACTIVE(U85(mark(X1), X2))
ACTIVE(length(cons(N, L))) → MARK(U91(isNatList(L), L, N))
MARK(U85(X1, X2)) → MARK(X1)
MARK(U86(X)) → ACTIVE(U86(mark(X)))
MARK(U86(X)) → MARK(X)
MARK(U91(X1, X2, X3)) → ACTIVE(U91(mark(X1), X2, X3))
MARK(U91(X1, X2, X3)) → MARK(X1)
MARK(U92(X1, X2, X3)) → ACTIVE(U92(mark(X1), X2, X3))
MARK(U92(X1, X2, X3)) → MARK(X1)
MARK(U93(X1, X2, X3)) → ACTIVE(U93(mark(X1), X2, X3))
MARK(U93(X1, X2, X3)) → MARK(X1)
MARK(U94(X1, X2)) → ACTIVE(U94(mark(X1), X2))
MARK(U94(X1, X2)) → MARK(X1)
MARK(s(X)) → ACTIVE(s(mark(X)))
MARK(s(X)) → MARK(X)
MARK(length(X)) → ACTIVE(length(mark(X)))
MARK(length(X)) → MARK(X)

The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
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)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
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(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X1, X2)) → active(U11(mark(X1), X2))
mark(tt) → active(tt)
mark(U12(X1, X2)) → active(U12(mark(X1), X2))
mark(isNatIListKind(X)) → active(isNatIListKind(X))
mark(U13(X)) → active(U13(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X1, X2)) → active(U22(mark(X1), X2))
mark(isNatKind(X)) → active(isNatKind(X))
mark(U23(X)) → active(U23(mark(X)))
mark(isNat(X)) → active(isNat(X))
mark(U31(X1, X2)) → active(U31(mark(X1), X2))
mark(U32(X1, X2)) → active(U32(mark(X1), X2))
mark(U33(X)) → active(U33(mark(X)))
mark(U41(X1, X2, X3)) → active(U41(mark(X1), X2, X3))
mark(U42(X1, X2, X3)) → active(U42(mark(X1), X2, X3))
mark(U43(X1, X2, X3)) → active(U43(mark(X1), X2, X3))
mark(U44(X1, X2, X3)) → active(U44(mark(X1), X2, X3))
mark(U45(X1, X2)) → active(U45(mark(X1), X2))
mark(U46(X)) → active(U46(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X)) → active(U71(mark(X)))
mark(U81(X1, X2, X3)) → active(U81(mark(X1), X2, X3))
mark(U82(X1, X2, X3)) → active(U82(mark(X1), X2, X3))
mark(U83(X1, X2, X3)) → active(U83(mark(X1), X2, X3))
mark(U84(X1, X2, X3)) → active(U84(mark(X1), X2, X3))
mark(U85(X1, X2)) → active(U85(mark(X1), X2))
mark(U86(X)) → active(U86(mark(X)))
mark(U91(X1, X2, X3)) → active(U91(mark(X1), X2, X3))
mark(U92(X1, X2, X3)) → active(U92(mark(X1), X2, X3))
mark(U93(X1, X2, X3)) → active(U93(mark(X1), X2, X3))
mark(U94(X1, X2)) → active(U94(mark(X1), X2))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(nil) → active(nil)
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X1), X2) → U11(X1, X2)
U11(X1, mark(X2)) → U11(X1, X2)
U11(active(X1), X2) → U11(X1, X2)
U11(X1, active(X2)) → U11(X1, X2)
U12(mark(X1), X2) → U12(X1, X2)
U12(X1, mark(X2)) → U12(X1, X2)
U12(active(X1), X2) → U12(X1, X2)
U12(X1, active(X2)) → U12(X1, X2)
isNatIListKind(mark(X)) → isNatIListKind(X)
isNatIListKind(active(X)) → isNatIListKind(X)
U13(mark(X)) → U13(X)
U13(active(X)) → U13(X)
isNatList(mark(X)) → isNatList(X)
isNatList(active(X)) → isNatList(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X1), X2) → U22(X1, X2)
U22(X1, mark(X2)) → U22(X1, X2)
U22(active(X1), X2) → U22(X1, X2)
U22(X1, active(X2)) → U22(X1, X2)
isNatKind(mark(X)) → isNatKind(X)
isNatKind(active(X)) → isNatKind(X)
U23(mark(X)) → U23(X)
U23(active(X)) → U23(X)
isNat(mark(X)) → isNat(X)
isNat(active(X)) → isNat(X)
U31(mark(X1), X2) → U31(X1, X2)
U31(X1, mark(X2)) → U31(X1, X2)
U31(active(X1), X2) → U31(X1, X2)
U31(X1, active(X2)) → U31(X1, X2)
U32(mark(X1), X2) → U32(X1, X2)
U32(X1, mark(X2)) → U32(X1, X2)
U32(active(X1), X2) → U32(X1, X2)
U32(X1, active(X2)) → U32(X1, X2)
U33(mark(X)) → U33(X)
U33(active(X)) → U33(X)
U41(mark(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, mark(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, mark(X3)) → U41(X1, X2, X3)
U41(active(X1), X2, X3) → U41(X1, X2, X3)
U41(X1, active(X2), X3) → U41(X1, X2, X3)
U41(X1, X2, active(X3)) → U41(X1, X2, X3)
U42(mark(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, mark(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, mark(X3)) → U42(X1, X2, X3)
U42(active(X1), X2, X3) → U42(X1, X2, X3)
U42(X1, active(X2), X3) → U42(X1, X2, X3)
U42(X1, X2, active(X3)) → U42(X1, X2, X3)
U43(mark(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, mark(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, mark(X3)) → U43(X1, X2, X3)
U43(active(X1), X2, X3) → U43(X1, X2, X3)
U43(X1, active(X2), X3) → U43(X1, X2, X3)
U43(X1, X2, active(X3)) → U43(X1, X2, X3)
U44(mark(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, mark(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, mark(X3)) → U44(X1, X2, X3)
U44(active(X1), X2, X3) → U44(X1, X2, X3)
U44(X1, active(X2), X3) → U44(X1, X2, X3)
U44(X1, X2, active(X3)) → U44(X1, X2, X3)
U45(mark(X1), X2) → U45(X1, X2)
U45(X1, mark(X2)) → U45(X1, X2)
U45(active(X1), X2) → U45(X1, X2)
U45(X1, active(X2)) → U45(X1, X2)
U46(mark(X)) → U46(X)
U46(active(X)) → U46(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X)) → U71(X)
U71(active(X)) → U71(X)
U81(mark(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, mark(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, mark(X3)) → U81(X1, X2, X3)
U81(active(X1), X2, X3) → U81(X1, X2, X3)
U81(X1, active(X2), X3) → U81(X1, X2, X3)
U81(X1, X2, active(X3)) → U81(X1, X2, X3)
U82(mark(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, mark(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, mark(X3)) → U82(X1, X2, X3)
U82(active(X1), X2, X3) → U82(X1, X2, X3)
U82(X1, active(X2), X3) → U82(X1, X2, X3)
U82(X1, X2, active(X3)) → U82(X1, X2, X3)
U83(mark(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, mark(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, mark(X3)) → U83(X1, X2, X3)
U83(active(X1), X2, X3) → U83(X1, X2, X3)
U83(X1, active(X2), X3) → U83(X1, X2, X3)
U83(X1, X2, active(X3)) → U83(X1, X2, X3)
U84(mark(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, mark(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, mark(X3)) → U84(X1, X2, X3)
U84(active(X1), X2, X3) → U84(X1, X2, X3)
U84(X1, active(X2), X3) → U84(X1, X2, X3)
U84(X1, X2, active(X3)) → U84(X1, X2, X3)
U85(mark(X1), X2) → U85(X1, X2)
U85(X1, mark(X2)) → U85(X1, X2)
U85(active(X1), X2) → U85(X1, X2)
U85(X1, active(X2)) → U85(X1, X2)
U86(mark(X)) → U86(X)
U86(active(X)) → U86(X)
U91(mark(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, mark(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, mark(X3)) → U91(X1, X2, X3)
U91(active(X1), X2, X3) → U91(X1, X2, X3)
U91(X1, active(X2), X3) → U91(X1, X2, X3)
U91(X1, X2, active(X3)) → U91(X1, X2, X3)
U92(mark(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, mark(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, mark(X3)) → U92(X1, X2, X3)
U92(active(X1), X2, X3) → U92(X1, X2, X3)
U92(X1, active(X2), X3) → U92(X1, X2, X3)
U92(X1, X2, active(X3)) → U92(X1, X2, X3)
U93(mark(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, mark(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, mark(X3)) → U93(X1, X2, X3)
U93(active(X1), X2, X3) → U93(X1, X2, X3)
U93(X1, active(X2), X3) → U93(X1, X2, X3)
U93(X1, X2, active(X3)) → U93(X1, X2, X3)
U94(mark(X1), X2) → U94(X1, X2)
U94(X1, mark(X2)) → U94(X1, X2)
U94(active(X1), X2) → U94(X1, X2)
U94(X1, active(X2)) → U94(X1, X2)
s(mark(X)) → s(X)
s(active(X)) → s(X)
length(mark(X)) → length(X)
length(active(X)) → length(X)

Q is empty.
We have to consider all minimal (P,Q,R)-chains.