(0) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(U11(tt)) → mark(tt)
active(U21(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatIList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIList(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, L, N)) → mark(U72(isNat(N), L))
active(U72(tt, L)) → mark(s(length(L)))
active(U81(tt)) → mark(nil)
active(U91(tt, IL, M, N)) → mark(U92(isNat(M), IL, M, N))
active(U92(tt, IL, M, N)) → mark(U93(isNat(N), IL, M, N))
active(U93(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatList(V1)))
active(isNat(s(V1))) → mark(U21(isNat(V1)))
active(isNatIList(V)) → mark(U31(isNatList(V)))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNat(V1), V2))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U51(isNat(V1), V2))
active(isNatList(take(V1, V2))) → mark(U61(isNat(V1), V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U71(isNatList(L), L, N))
active(take(0, IL)) → mark(U81(isNatIList(IL)))
active(take(s(M), cons(N, IL))) → mark(U91(isNatIList(IL), IL, M, N))
mark(zeros) → active(zeros)
mark(cons(X1, X2)) → active(cons(mark(X1), X2))
mark(0) → active(0)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X)) → active(U21(mark(X)))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNatIList(X)) → active(isNatIList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(isNatList(X)) → active(isNatList(X))
mark(U61(X1, X2)) → active(U61(mark(X1), X2))
mark(U62(X)) → active(U62(mark(X)))
mark(U71(X1, X2, X3)) → active(U71(mark(X1), X2, X3))
mark(U72(X1, X2)) → active(U72(mark(X1), X2))
mark(isNat(X)) → active(isNat(X))
mark(s(X)) → active(s(mark(X)))
mark(length(X)) → active(length(mark(X)))
mark(U81(X)) → active(U81(mark(X)))
mark(nil) → active(nil)
mark(U91(X1, X2, X3, X4)) → active(U91(mark(X1), X2, X3, X4))
mark(U92(X1, X2, X3, X4)) → active(U92(mark(X1), X2, X3, X4))
mark(U93(X1, X2, X3, X4)) → active(U93(mark(X1), X2, X3, X4))
mark(take(X1, X2)) → active(take(mark(X1), mark(X2)))
cons(mark(X1), X2) → cons(X1, X2)
cons(X1, mark(X2)) → cons(X1, X2)
cons(active(X1), X2) → cons(X1, X2)
cons(X1, active(X2)) → cons(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X)) → U21(X)
U21(active(X)) → U21(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNatIList(mark(X)) → isNatIList(X)
isNatIList(active(X)) → isNatIList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
isNatList(mark(X)) →