MAYBE

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict Trs:
  { a__zeros() -> cons(0(), zeros())
  , a__zeros() -> zeros()
  , a__U11(X1, X2) -> U11(X1, X2)
  , a__U11(tt(), L) -> s(a__length(mark(L)))
  , a__length(X) -> length(X)
  , a__length(cons(N, L)) ->
    a__U11(a__and(a__isNatList(L), isNat(N)), L)
  , a__length(nil()) -> 0()
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(zeros()) -> a__zeros()
  , mark(tt()) -> tt()
  , mark(s(X)) -> s(mark(X))
  , mark(nil()) -> nil()
  , mark(take(X1, X2)) -> a__take(mark(X1), mark(X2))
  , mark(length(X)) -> a__length(mark(X))
  , mark(isNatIList(X)) -> a__isNatIList(X)
  , mark(isNatList(X)) -> a__isNatList(X)
  , mark(isNat(X)) -> a__isNat(X)
  , mark(and(X1, X2)) -> a__and(mark(X1), X2)
  , mark(U11(X1, X2)) -> a__U11(mark(X1), X2)
  , mark(U21(X)) -> a__U21(mark(X))
  , mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4)
  , a__U21(X) -> U21(X)
  , a__U21(tt()) -> nil()
  , a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4)
  , a__U31(tt(), IL, M, N) -> cons(mark(N), take(M, IL))
  , a__and(X1, X2) -> and(X1, X2)
  , a__and(tt(), X) -> mark(X)
  , a__isNat(X) -> isNat(X)
  , a__isNat(0()) -> tt()
  , a__isNat(s(V1)) -> a__isNat(V1)
  , a__isNat(length(V1)) -> a__isNatList(V1)
  , a__isNatList(X) -> isNatList(X)
  , a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2))
  , a__isNatList(nil()) -> tt()
  , a__isNatList(take(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(V) -> a__isNatList(V)
  , a__isNatIList(X) -> isNatIList(X)
  , a__isNatIList(cons(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(zeros()) -> tt()
  , a__take(X1, X2) -> take(X1, X2)
  , a__take(0(), IL) -> a__U21(a__isNatIList(IL))
  , a__take(s(M), cons(N, IL)) ->
    a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
           IL,
           M,
           N) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We add following dependency tuples:

Strict DPs:
  { a__zeros^#() -> c_1()
  , a__zeros^#() -> c_2()
  , a__U11^#(X1, X2) -> c_3()
  , a__U11^#(tt(), L) -> c_4(a__length^#(mark(L)), mark^#(L))
  , a__length^#(X) -> c_5()
  , a__length^#(cons(N, L)) ->
    c_6(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
        a__and^#(a__isNatList(L), isNat(N)),
        a__isNatList^#(L))
  , a__length^#(nil()) -> c_7()
  , mark^#(cons(X1, X2)) -> c_8(mark^#(X1))
  , mark^#(0()) -> c_9()
  , mark^#(zeros()) -> c_10(a__zeros^#())
  , mark^#(tt()) -> c_11()
  , mark^#(s(X)) -> c_12(mark^#(X))
  , mark^#(nil()) -> c_13()
  , mark^#(take(X1, X2)) ->
    c_14(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
  , mark^#(length(X)) -> c_15(a__length^#(mark(X)), mark^#(X))
  , mark^#(isNatIList(X)) -> c_16(a__isNatIList^#(X))
  , mark^#(isNatList(X)) -> c_17(a__isNatList^#(X))
  , mark^#(isNat(X)) -> c_18(a__isNat^#(X))
  , mark^#(and(X1, X2)) -> c_19(a__and^#(mark(X1), X2), mark^#(X1))
  , mark^#(U11(X1, X2)) -> c_20(a__U11^#(mark(X1), X2), mark^#(X1))
  , mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
  , mark^#(U31(X1, X2, X3, X4)) ->
    c_22(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
  , a__and^#(X1, X2) -> c_27()
  , a__and^#(tt(), X) -> c_28(mark^#(X))
  , a__isNatList^#(X) -> c_33()
  , a__isNatList^#(cons(V1, V2)) ->
    c_34(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
  , a__isNatList^#(nil()) -> c_35()
  , a__isNatList^#(take(V1, V2)) ->
    c_36(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__take^#(X1, X2) -> c_41()
  , a__take^#(0(), IL) ->
    c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL))
  , a__take^#(s(M), cons(N, IL)) ->
    c_43(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                  IL,
                  M,
                  N),
         a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
         a__isNatIList^#(IL))
  , a__isNatIList^#(V) -> c_37(a__isNatList^#(V))
  , a__isNatIList^#(X) -> c_38()
  , a__isNatIList^#(cons(V1, V2)) ->
    c_39(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__isNatIList^#(zeros()) -> c_40()
  , a__isNat^#(X) -> c_29()
  , a__isNat^#(0()) -> c_30()
  , a__isNat^#(s(V1)) -> c_31(a__isNat^#(V1))
  , a__isNat^#(length(V1)) -> c_32(a__isNatList^#(V1))
  , a__U21^#(X) -> c_23()
  , a__U21^#(tt()) -> c_24()
  , a__U31^#(X1, X2, X3, X4) -> c_25()
  , a__U31^#(tt(), IL, M, N) -> c_26(mark^#(N)) }

and mark the set of starting terms.

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__zeros^#() -> c_1()
  , a__zeros^#() -> c_2()
  , a__U11^#(X1, X2) -> c_3()
  , a__U11^#(tt(), L) -> c_4(a__length^#(mark(L)), mark^#(L))
  , a__length^#(X) -> c_5()
  , a__length^#(cons(N, L)) ->
    c_6(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
        a__and^#(a__isNatList(L), isNat(N)),
        a__isNatList^#(L))
  , a__length^#(nil()) -> c_7()
  , mark^#(cons(X1, X2)) -> c_8(mark^#(X1))
  , mark^#(0()) -> c_9()
  , mark^#(zeros()) -> c_10(a__zeros^#())
  , mark^#(tt()) -> c_11()
  , mark^#(s(X)) -> c_12(mark^#(X))
  , mark^#(nil()) -> c_13()
  , mark^#(take(X1, X2)) ->
    c_14(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
  , mark^#(length(X)) -> c_15(a__length^#(mark(X)), mark^#(X))
  , mark^#(isNatIList(X)) -> c_16(a__isNatIList^#(X))
  , mark^#(isNatList(X)) -> c_17(a__isNatList^#(X))
  , mark^#(isNat(X)) -> c_18(a__isNat^#(X))
  , mark^#(and(X1, X2)) -> c_19(a__and^#(mark(X1), X2), mark^#(X1))
  , mark^#(U11(X1, X2)) -> c_20(a__U11^#(mark(X1), X2), mark^#(X1))
  , mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
  , mark^#(U31(X1, X2, X3, X4)) ->
    c_22(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
  , a__and^#(X1, X2) -> c_27()
  , a__and^#(tt(), X) -> c_28(mark^#(X))
  , a__isNatList^#(X) -> c_33()
  , a__isNatList^#(cons(V1, V2)) ->
    c_34(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
  , a__isNatList^#(nil()) -> c_35()
  , a__isNatList^#(take(V1, V2)) ->
    c_36(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__take^#(X1, X2) -> c_41()
  , a__take^#(0(), IL) ->
    c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL))
  , a__take^#(s(M), cons(N, IL)) ->
    c_43(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                  IL,
                  M,
                  N),
         a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
         a__isNatIList^#(IL))
  , a__isNatIList^#(V) -> c_37(a__isNatList^#(V))
  , a__isNatIList^#(X) -> c_38()
  , a__isNatIList^#(cons(V1, V2)) ->
    c_39(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__isNatIList^#(zeros()) -> c_40()
  , a__isNat^#(X) -> c_29()
  , a__isNat^#(0()) -> c_30()
  , a__isNat^#(s(V1)) -> c_31(a__isNat^#(V1))
  , a__isNat^#(length(V1)) -> c_32(a__isNatList^#(V1))
  , a__U21^#(X) -> c_23()
  , a__U21^#(tt()) -> c_24()
  , a__U31^#(X1, X2, X3, X4) -> c_25()
  , a__U31^#(tt(), IL, M, N) -> c_26(mark^#(N)) }
Weak Trs:
  { a__zeros() -> cons(0(), zeros())
  , a__zeros() -> zeros()
  , a__U11(X1, X2) -> U11(X1, X2)
  , a__U11(tt(), L) -> s(a__length(mark(L)))
  , a__length(X) -> length(X)
  , a__length(cons(N, L)) ->
    a__U11(a__and(a__isNatList(L), isNat(N)), L)
  , a__length(nil()) -> 0()
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(zeros()) -> a__zeros()
  , mark(tt()) -> tt()
  , mark(s(X)) -> s(mark(X))
  , mark(nil()) -> nil()
  , mark(take(X1, X2)) -> a__take(mark(X1), mark(X2))
  , mark(length(X)) -> a__length(mark(X))
  , mark(isNatIList(X)) -> a__isNatIList(X)
  , mark(isNatList(X)) -> a__isNatList(X)
  , mark(isNat(X)) -> a__isNat(X)
  , mark(and(X1, X2)) -> a__and(mark(X1), X2)
  , mark(U11(X1, X2)) -> a__U11(mark(X1), X2)
  , mark(U21(X)) -> a__U21(mark(X))
  , mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4)
  , a__U21(X) -> U21(X)
  , a__U21(tt()) -> nil()
  , a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4)
  , a__U31(tt(), IL, M, N) -> cons(mark(N), take(M, IL))
  , a__and(X1, X2) -> and(X1, X2)
  , a__and(tt(), X) -> mark(X)
  , a__isNat(X) -> isNat(X)
  , a__isNat(0()) -> tt()
  , a__isNat(s(V1)) -> a__isNat(V1)
  , a__isNat(length(V1)) -> a__isNatList(V1)
  , a__isNatList(X) -> isNatList(X)
  , a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2))
  , a__isNatList(nil()) -> tt()
  , a__isNatList(take(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(V) -> a__isNatList(V)
  , a__isNatIList(X) -> isNatIList(X)
  , a__isNatIList(cons(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(zeros()) -> tt()
  , a__take(X1, X2) -> take(X1, X2)
  , a__take(0(), IL) -> a__U21(a__isNatIList(IL))
  , a__take(s(M), cons(N, IL)) ->
    a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
           IL,
           M,
           N) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We estimate the number of application of
{1,2,3,5,7,9,11,13,23,25,27,29,33,35,36,37,40,41,42} by
applications of
Pre({1,2,3,5,7,9,11,13,23,25,27,29,33,35,36,37,40,41,42}) =
{4,6,8,10,12,14,15,16,17,18,19,20,21,22,24,26,28,30,31,32,34,38,39,43}.
Here rules are labeled as follows:

  DPs:
    { 1: a__zeros^#() -> c_1()
    , 2: a__zeros^#() -> c_2()
    , 3: a__U11^#(X1, X2) -> c_3()
    , 4: a__U11^#(tt(), L) -> c_4(a__length^#(mark(L)), mark^#(L))
    , 5: a__length^#(X) -> c_5()
    , 6: a__length^#(cons(N, L)) ->
         c_6(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
             a__and^#(a__isNatList(L), isNat(N)),
             a__isNatList^#(L))
    , 7: a__length^#(nil()) -> c_7()
    , 8: mark^#(cons(X1, X2)) -> c_8(mark^#(X1))
    , 9: mark^#(0()) -> c_9()
    , 10: mark^#(zeros()) -> c_10(a__zeros^#())
    , 11: mark^#(tt()) -> c_11()
    , 12: mark^#(s(X)) -> c_12(mark^#(X))
    , 13: mark^#(nil()) -> c_13()
    , 14: mark^#(take(X1, X2)) ->
          c_14(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
    , 15: mark^#(length(X)) -> c_15(a__length^#(mark(X)), mark^#(X))
    , 16: mark^#(isNatIList(X)) -> c_16(a__isNatIList^#(X))
    , 17: mark^#(isNatList(X)) -> c_17(a__isNatList^#(X))
    , 18: mark^#(isNat(X)) -> c_18(a__isNat^#(X))
    , 19: mark^#(and(X1, X2)) ->
          c_19(a__and^#(mark(X1), X2), mark^#(X1))
    , 20: mark^#(U11(X1, X2)) ->
          c_20(a__U11^#(mark(X1), X2), mark^#(X1))
    , 21: mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
    , 22: mark^#(U31(X1, X2, X3, X4)) ->
          c_22(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
    , 23: a__and^#(X1, X2) -> c_27()
    , 24: a__and^#(tt(), X) -> c_28(mark^#(X))
    , 25: a__isNatList^#(X) -> c_33()
    , 26: a__isNatList^#(cons(V1, V2)) ->
          c_34(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
    , 27: a__isNatList^#(nil()) -> c_35()
    , 28: a__isNatList^#(take(V1, V2)) ->
          c_36(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
    , 29: a__take^#(X1, X2) -> c_41()
    , 30: a__take^#(0(), IL) ->
          c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL))
    , 31: a__take^#(s(M), cons(N, IL)) ->
          c_43(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                        IL,
                        M,
                        N),
               a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
               a__isNatIList^#(IL))
    , 32: a__isNatIList^#(V) -> c_37(a__isNatList^#(V))
    , 33: a__isNatIList^#(X) -> c_38()
    , 34: a__isNatIList^#(cons(V1, V2)) ->
          c_39(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
    , 35: a__isNatIList^#(zeros()) -> c_40()
    , 36: a__isNat^#(X) -> c_29()
    , 37: a__isNat^#(0()) -> c_30()
    , 38: a__isNat^#(s(V1)) -> c_31(a__isNat^#(V1))
    , 39: a__isNat^#(length(V1)) -> c_32(a__isNatList^#(V1))
    , 40: a__U21^#(X) -> c_23()
    , 41: a__U21^#(tt()) -> c_24()
    , 42: a__U31^#(X1, X2, X3, X4) -> c_25()
    , 43: a__U31^#(tt(), IL, M, N) -> c_26(mark^#(N)) }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__U11^#(tt(), L) -> c_4(a__length^#(mark(L)), mark^#(L))
  , a__length^#(cons(N, L)) ->
    c_6(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
        a__and^#(a__isNatList(L), isNat(N)),
        a__isNatList^#(L))
  , mark^#(cons(X1, X2)) -> c_8(mark^#(X1))
  , mark^#(zeros()) -> c_10(a__zeros^#())
  , mark^#(s(X)) -> c_12(mark^#(X))
  , mark^#(take(X1, X2)) ->
    c_14(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
  , mark^#(length(X)) -> c_15(a__length^#(mark(X)), mark^#(X))
  , mark^#(isNatIList(X)) -> c_16(a__isNatIList^#(X))
  , mark^#(isNatList(X)) -> c_17(a__isNatList^#(X))
  , mark^#(isNat(X)) -> c_18(a__isNat^#(X))
  , mark^#(and(X1, X2)) -> c_19(a__and^#(mark(X1), X2), mark^#(X1))
  , mark^#(U11(X1, X2)) -> c_20(a__U11^#(mark(X1), X2), mark^#(X1))
  , mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
  , mark^#(U31(X1, X2, X3, X4)) ->
    c_22(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
  , a__and^#(tt(), X) -> c_28(mark^#(X))
  , a__isNatList^#(cons(V1, V2)) ->
    c_34(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
  , a__isNatList^#(take(V1, V2)) ->
    c_36(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__take^#(0(), IL) ->
    c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL))
  , a__take^#(s(M), cons(N, IL)) ->
    c_43(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                  IL,
                  M,
                  N),
         a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
         a__isNatIList^#(IL))
  , a__isNatIList^#(V) -> c_37(a__isNatList^#(V))
  , a__isNatIList^#(cons(V1, V2)) ->
    c_39(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__isNat^#(s(V1)) -> c_31(a__isNat^#(V1))
  , a__isNat^#(length(V1)) -> c_32(a__isNatList^#(V1))
  , a__U31^#(tt(), IL, M, N) -> c_26(mark^#(N)) }
Weak DPs:
  { a__zeros^#() -> c_1()
  , a__zeros^#() -> c_2()
  , a__U11^#(X1, X2) -> c_3()
  , a__length^#(X) -> c_5()
  , a__length^#(nil()) -> c_7()
  , mark^#(0()) -> c_9()
  , mark^#(tt()) -> c_11()
  , mark^#(nil()) -> c_13()
  , a__and^#(X1, X2) -> c_27()
  , a__isNatList^#(X) -> c_33()
  , a__isNatList^#(nil()) -> c_35()
  , a__take^#(X1, X2) -> c_41()
  , a__isNatIList^#(X) -> c_38()
  , a__isNatIList^#(zeros()) -> c_40()
  , a__isNat^#(X) -> c_29()
  , a__isNat^#(0()) -> c_30()
  , a__U21^#(X) -> c_23()
  , a__U21^#(tt()) -> c_24()
  , a__U31^#(X1, X2, X3, X4) -> c_25() }
Weak Trs:
  { a__zeros() -> cons(0(), zeros())
  , a__zeros() -> zeros()
  , a__U11(X1, X2) -> U11(X1, X2)
  , a__U11(tt(), L) -> s(a__length(mark(L)))
  , a__length(X) -> length(X)
  , a__length(cons(N, L)) ->
    a__U11(a__and(a__isNatList(L), isNat(N)), L)
  , a__length(nil()) -> 0()
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(zeros()) -> a__zeros()
  , mark(tt()) -> tt()
  , mark(s(X)) -> s(mark(X))
  , mark(nil()) -> nil()
  , mark(take(X1, X2)) -> a__take(mark(X1), mark(X2))
  , mark(length(X)) -> a__length(mark(X))
  , mark(isNatIList(X)) -> a__isNatIList(X)
  , mark(isNatList(X)) -> a__isNatList(X)
  , mark(isNat(X)) -> a__isNat(X)
  , mark(and(X1, X2)) -> a__and(mark(X1), X2)
  , mark(U11(X1, X2)) -> a__U11(mark(X1), X2)
  , mark(U21(X)) -> a__U21(mark(X))
  , mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4)
  , a__U21(X) -> U21(X)
  , a__U21(tt()) -> nil()
  , a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4)
  , a__U31(tt(), IL, M, N) -> cons(mark(N), take(M, IL))
  , a__and(X1, X2) -> and(X1, X2)
  , a__and(tt(), X) -> mark(X)
  , a__isNat(X) -> isNat(X)
  , a__isNat(0()) -> tt()
  , a__isNat(s(V1)) -> a__isNat(V1)
  , a__isNat(length(V1)) -> a__isNatList(V1)
  , a__isNatList(X) -> isNatList(X)
  , a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2))
  , a__isNatList(nil()) -> tt()
  , a__isNatList(take(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(V) -> a__isNatList(V)
  , a__isNatIList(X) -> isNatIList(X)
  , a__isNatIList(cons(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(zeros()) -> tt()
  , a__take(X1, X2) -> take(X1, X2)
  , a__take(0(), IL) -> a__U21(a__isNatIList(IL))
  , a__take(s(M), cons(N, IL)) ->
    a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
           IL,
           M,
           N) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We estimate the number of application of {4} by applications of
Pre({4}) = {1,3,5,6,7,11,12,13,14,15,24}. Here rules are labeled as
follows:

  DPs:
    { 1: a__U11^#(tt(), L) -> c_4(a__length^#(mark(L)), mark^#(L))
    , 2: a__length^#(cons(N, L)) ->
         c_6(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
             a__and^#(a__isNatList(L), isNat(N)),
             a__isNatList^#(L))
    , 3: mark^#(cons(X1, X2)) -> c_8(mark^#(X1))
    , 4: mark^#(zeros()) -> c_10(a__zeros^#())
    , 5: mark^#(s(X)) -> c_12(mark^#(X))
    , 6: mark^#(take(X1, X2)) ->
         c_14(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
    , 7: mark^#(length(X)) -> c_15(a__length^#(mark(X)), mark^#(X))
    , 8: mark^#(isNatIList(X)) -> c_16(a__isNatIList^#(X))
    , 9: mark^#(isNatList(X)) -> c_17(a__isNatList^#(X))
    , 10: mark^#(isNat(X)) -> c_18(a__isNat^#(X))
    , 11: mark^#(and(X1, X2)) ->
          c_19(a__and^#(mark(X1), X2), mark^#(X1))
    , 12: mark^#(U11(X1, X2)) ->
          c_20(a__U11^#(mark(X1), X2), mark^#(X1))
    , 13: mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
    , 14: mark^#(U31(X1, X2, X3, X4)) ->
          c_22(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
    , 15: a__and^#(tt(), X) -> c_28(mark^#(X))
    , 16: a__isNatList^#(cons(V1, V2)) ->
          c_34(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
    , 17: a__isNatList^#(take(V1, V2)) ->
          c_36(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
    , 18: a__take^#(0(), IL) ->
          c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL))
    , 19: a__take^#(s(M), cons(N, IL)) ->
          c_43(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                        IL,
                        M,
                        N),
               a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
               a__isNatIList^#(IL))
    , 20: a__isNatIList^#(V) -> c_37(a__isNatList^#(V))
    , 21: a__isNatIList^#(cons(V1, V2)) ->
          c_39(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
    , 22: a__isNat^#(s(V1)) -> c_31(a__isNat^#(V1))
    , 23: a__isNat^#(length(V1)) -> c_32(a__isNatList^#(V1))
    , 24: a__U31^#(tt(), IL, M, N) -> c_26(mark^#(N))
    , 25: a__zeros^#() -> c_1()
    , 26: a__zeros^#() -> c_2()
    , 27: a__U11^#(X1, X2) -> c_3()
    , 28: a__length^#(X) -> c_5()
    , 29: a__length^#(nil()) -> c_7()
    , 30: mark^#(0()) -> c_9()
    , 31: mark^#(tt()) -> c_11()
    , 32: mark^#(nil()) -> c_13()
    , 33: a__and^#(X1, X2) -> c_27()
    , 34: a__isNatList^#(X) -> c_33()
    , 35: a__isNatList^#(nil()) -> c_35()
    , 36: a__take^#(X1, X2) -> c_41()
    , 37: a__isNatIList^#(X) -> c_38()
    , 38: a__isNatIList^#(zeros()) -> c_40()
    , 39: a__isNat^#(X) -> c_29()
    , 40: a__isNat^#(0()) -> c_30()
    , 41: a__U21^#(X) -> c_23()
    , 42: a__U21^#(tt()) -> c_24()
    , 43: a__U31^#(X1, X2, X3, X4) -> c_25() }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__U11^#(tt(), L) -> c_4(a__length^#(mark(L)), mark^#(L))
  , a__length^#(cons(N, L)) ->
    c_6(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
        a__and^#(a__isNatList(L), isNat(N)),
        a__isNatList^#(L))
  , mark^#(cons(X1, X2)) -> c_8(mark^#(X1))
  , mark^#(s(X)) -> c_12(mark^#(X))
  , mark^#(take(X1, X2)) ->
    c_14(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
  , mark^#(length(X)) -> c_15(a__length^#(mark(X)), mark^#(X))
  , mark^#(isNatIList(X)) -> c_16(a__isNatIList^#(X))
  , mark^#(isNatList(X)) -> c_17(a__isNatList^#(X))
  , mark^#(isNat(X)) -> c_18(a__isNat^#(X))
  , mark^#(and(X1, X2)) -> c_19(a__and^#(mark(X1), X2), mark^#(X1))
  , mark^#(U11(X1, X2)) -> c_20(a__U11^#(mark(X1), X2), mark^#(X1))
  , mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
  , mark^#(U31(X1, X2, X3, X4)) ->
    c_22(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
  , a__and^#(tt(), X) -> c_28(mark^#(X))
  , a__isNatList^#(cons(V1, V2)) ->
    c_34(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
  , a__isNatList^#(take(V1, V2)) ->
    c_36(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__take^#(0(), IL) ->
    c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL))
  , a__take^#(s(M), cons(N, IL)) ->
    c_43(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                  IL,
                  M,
                  N),
         a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
         a__isNatIList^#(IL))
  , a__isNatIList^#(V) -> c_37(a__isNatList^#(V))
  , a__isNatIList^#(cons(V1, V2)) ->
    c_39(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__isNat^#(s(V1)) -> c_31(a__isNat^#(V1))
  , a__isNat^#(length(V1)) -> c_32(a__isNatList^#(V1))
  , a__U31^#(tt(), IL, M, N) -> c_26(mark^#(N)) }
Weak DPs:
  { a__zeros^#() -> c_1()
  , a__zeros^#() -> c_2()
  , a__U11^#(X1, X2) -> c_3()
  , a__length^#(X) -> c_5()
  , a__length^#(nil()) -> c_7()
  , mark^#(0()) -> c_9()
  , mark^#(zeros()) -> c_10(a__zeros^#())
  , mark^#(tt()) -> c_11()
  , mark^#(nil()) -> c_13()
  , a__and^#(X1, X2) -> c_27()
  , a__isNatList^#(X) -> c_33()
  , a__isNatList^#(nil()) -> c_35()
  , a__take^#(X1, X2) -> c_41()
  , a__isNatIList^#(X) -> c_38()
  , a__isNatIList^#(zeros()) -> c_40()
  , a__isNat^#(X) -> c_29()
  , a__isNat^#(0()) -> c_30()
  , a__U21^#(X) -> c_23()
  , a__U21^#(tt()) -> c_24()
  , a__U31^#(X1, X2, X3, X4) -> c_25() }
Weak Trs:
  { a__zeros() -> cons(0(), zeros())
  , a__zeros() -> zeros()
  , a__U11(X1, X2) -> U11(X1, X2)
  , a__U11(tt(), L) -> s(a__length(mark(L)))
  , a__length(X) -> length(X)
  , a__length(cons(N, L)) ->
    a__U11(a__and(a__isNatList(L), isNat(N)), L)
  , a__length(nil()) -> 0()
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(zeros()) -> a__zeros()
  , mark(tt()) -> tt()
  , mark(s(X)) -> s(mark(X))
  , mark(nil()) -> nil()
  , mark(take(X1, X2)) -> a__take(mark(X1), mark(X2))
  , mark(length(X)) -> a__length(mark(X))
  , mark(isNatIList(X)) -> a__isNatIList(X)
  , mark(isNatList(X)) -> a__isNatList(X)
  , mark(isNat(X)) -> a__isNat(X)
  , mark(and(X1, X2)) -> a__and(mark(X1), X2)
  , mark(U11(X1, X2)) -> a__U11(mark(X1), X2)
  , mark(U21(X)) -> a__U21(mark(X))
  , mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4)
  , a__U21(X) -> U21(X)
  , a__U21(tt()) -> nil()
  , a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4)
  , a__U31(tt(), IL, M, N) -> cons(mark(N), take(M, IL))
  , a__and(X1, X2) -> and(X1, X2)
  , a__and(tt(), X) -> mark(X)
  , a__isNat(X) -> isNat(X)
  , a__isNat(0()) -> tt()
  , a__isNat(s(V1)) -> a__isNat(V1)
  , a__isNat(length(V1)) -> a__isNatList(V1)
  , a__isNatList(X) -> isNatList(X)
  , a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2))
  , a__isNatList(nil()) -> tt()
  , a__isNatList(take(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(V) -> a__isNatList(V)
  , a__isNatIList(X) -> isNatIList(X)
  , a__isNatIList(cons(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(zeros()) -> tt()
  , a__take(X1, X2) -> take(X1, X2)
  , a__take(0(), IL) -> a__U21(a__isNatIList(IL))
  , a__take(s(M), cons(N, IL)) ->
    a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
           IL,
           M,
           N) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.

{ a__zeros^#() -> c_1()
, a__zeros^#() -> c_2()
, a__U11^#(X1, X2) -> c_3()
, a__length^#(X) -> c_5()
, a__length^#(nil()) -> c_7()
, mark^#(0()) -> c_9()
, mark^#(zeros()) -> c_10(a__zeros^#())
, mark^#(tt()) -> c_11()
, mark^#(nil()) -> c_13()
, a__and^#(X1, X2) -> c_27()
, a__isNatList^#(X) -> c_33()
, a__isNatList^#(nil()) -> c_35()
, a__take^#(X1, X2) -> c_41()
, a__isNatIList^#(X) -> c_38()
, a__isNatIList^#(zeros()) -> c_40()
, a__isNat^#(X) -> c_29()
, a__isNat^#(0()) -> c_30()
, a__U21^#(X) -> c_23()
, a__U21^#(tt()) -> c_24()
, a__U31^#(X1, X2, X3, X4) -> c_25() }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__U11^#(tt(), L) -> c_4(a__length^#(mark(L)), mark^#(L))
  , a__length^#(cons(N, L)) ->
    c_6(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
        a__and^#(a__isNatList(L), isNat(N)),
        a__isNatList^#(L))
  , mark^#(cons(X1, X2)) -> c_8(mark^#(X1))
  , mark^#(s(X)) -> c_12(mark^#(X))
  , mark^#(take(X1, X2)) ->
    c_14(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
  , mark^#(length(X)) -> c_15(a__length^#(mark(X)), mark^#(X))
  , mark^#(isNatIList(X)) -> c_16(a__isNatIList^#(X))
  , mark^#(isNatList(X)) -> c_17(a__isNatList^#(X))
  , mark^#(isNat(X)) -> c_18(a__isNat^#(X))
  , mark^#(and(X1, X2)) -> c_19(a__and^#(mark(X1), X2), mark^#(X1))
  , mark^#(U11(X1, X2)) -> c_20(a__U11^#(mark(X1), X2), mark^#(X1))
  , mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
  , mark^#(U31(X1, X2, X3, X4)) ->
    c_22(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
  , a__and^#(tt(), X) -> c_28(mark^#(X))
  , a__isNatList^#(cons(V1, V2)) ->
    c_34(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
  , a__isNatList^#(take(V1, V2)) ->
    c_36(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__take^#(0(), IL) ->
    c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL))
  , a__take^#(s(M), cons(N, IL)) ->
    c_43(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                  IL,
                  M,
                  N),
         a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
         a__isNatIList^#(IL))
  , a__isNatIList^#(V) -> c_37(a__isNatList^#(V))
  , a__isNatIList^#(cons(V1, V2)) ->
    c_39(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__isNat^#(s(V1)) -> c_31(a__isNat^#(V1))
  , a__isNat^#(length(V1)) -> c_32(a__isNatList^#(V1))
  , a__U31^#(tt(), IL, M, N) -> c_26(mark^#(N)) }
Weak Trs:
  { a__zeros() -> cons(0(), zeros())
  , a__zeros() -> zeros()
  , a__U11(X1, X2) -> U11(X1, X2)
  , a__U11(tt(), L) -> s(a__length(mark(L)))
  , a__length(X) -> length(X)
  , a__length(cons(N, L)) ->
    a__U11(a__and(a__isNatList(L), isNat(N)), L)
  , a__length(nil()) -> 0()
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(zeros()) -> a__zeros()
  , mark(tt()) -> tt()
  , mark(s(X)) -> s(mark(X))
  , mark(nil()) -> nil()
  , mark(take(X1, X2)) -> a__take(mark(X1), mark(X2))
  , mark(length(X)) -> a__length(mark(X))
  , mark(isNatIList(X)) -> a__isNatIList(X)
  , mark(isNatList(X)) -> a__isNatList(X)
  , mark(isNat(X)) -> a__isNat(X)
  , mark(and(X1, X2)) -> a__and(mark(X1), X2)
  , mark(U11(X1, X2)) -> a__U11(mark(X1), X2)
  , mark(U21(X)) -> a__U21(mark(X))
  , mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4)
  , a__U21(X) -> U21(X)
  , a__U21(tt()) -> nil()
  , a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4)
  , a__U31(tt(), IL, M, N) -> cons(mark(N), take(M, IL))
  , a__and(X1, X2) -> and(X1, X2)
  , a__and(tt(), X) -> mark(X)
  , a__isNat(X) -> isNat(X)
  , a__isNat(0()) -> tt()
  , a__isNat(s(V1)) -> a__isNat(V1)
  , a__isNat(length(V1)) -> a__isNatList(V1)
  , a__isNatList(X) -> isNatList(X)
  , a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2))
  , a__isNatList(nil()) -> tt()
  , a__isNatList(take(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(V) -> a__isNatList(V)
  , a__isNatIList(X) -> isNatIList(X)
  , a__isNatIList(cons(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(zeros()) -> tt()
  , a__take(X1, X2) -> take(X1, X2)
  , a__take(0(), IL) -> a__U21(a__isNatIList(IL))
  , a__take(s(M), cons(N, IL)) ->
    a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
           IL,
           M,
           N) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

Due to missing edges in the dependency-graph, the right-hand sides
of following rules could be simplified:

  { mark^#(U21(X)) -> c_21(a__U21^#(mark(X)), mark^#(X))
  , a__take^#(0(), IL) ->
    c_42(a__U21^#(a__isNatIList(IL)), a__isNatIList^#(IL)) }

We are left with following problem, upon which TcT provides the
certificate MAYBE.

Strict DPs:
  { a__U11^#(tt(), L) -> c_1(a__length^#(mark(L)), mark^#(L))
  , a__length^#(cons(N, L)) ->
    c_2(a__U11^#(a__and(a__isNatList(L), isNat(N)), L),
        a__and^#(a__isNatList(L), isNat(N)),
        a__isNatList^#(L))
  , mark^#(cons(X1, X2)) -> c_3(mark^#(X1))
  , mark^#(s(X)) -> c_4(mark^#(X))
  , mark^#(take(X1, X2)) ->
    c_5(a__take^#(mark(X1), mark(X2)), mark^#(X1), mark^#(X2))
  , mark^#(length(X)) -> c_6(a__length^#(mark(X)), mark^#(X))
  , mark^#(isNatIList(X)) -> c_7(a__isNatIList^#(X))
  , mark^#(isNatList(X)) -> c_8(a__isNatList^#(X))
  , mark^#(isNat(X)) -> c_9(a__isNat^#(X))
  , mark^#(and(X1, X2)) -> c_10(a__and^#(mark(X1), X2), mark^#(X1))
  , mark^#(U11(X1, X2)) -> c_11(a__U11^#(mark(X1), X2), mark^#(X1))
  , mark^#(U21(X)) -> c_12(mark^#(X))
  , mark^#(U31(X1, X2, X3, X4)) ->
    c_13(a__U31^#(mark(X1), X2, X3, X4), mark^#(X1))
  , a__and^#(tt(), X) -> c_14(mark^#(X))
  , a__isNatList^#(cons(V1, V2)) ->
    c_15(a__and^#(a__isNat(V1), isNatList(V2)), a__isNat^#(V1))
  , a__isNatList^#(take(V1, V2)) ->
    c_16(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__take^#(0(), IL) -> c_17(a__isNatIList^#(IL))
  , a__take^#(s(M), cons(N, IL)) ->
    c_18(a__U31^#(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
                  IL,
                  M,
                  N),
         a__and^#(a__isNatIList(IL), and(isNat(M), isNat(N))),
         a__isNatIList^#(IL))
  , a__isNatIList^#(V) -> c_19(a__isNatList^#(V))
  , a__isNatIList^#(cons(V1, V2)) ->
    c_20(a__and^#(a__isNat(V1), isNatIList(V2)), a__isNat^#(V1))
  , a__isNat^#(s(V1)) -> c_21(a__isNat^#(V1))
  , a__isNat^#(length(V1)) -> c_22(a__isNatList^#(V1))
  , a__U31^#(tt(), IL, M, N) -> c_23(mark^#(N)) }
Weak Trs:
  { a__zeros() -> cons(0(), zeros())
  , a__zeros() -> zeros()
  , a__U11(X1, X2) -> U11(X1, X2)
  , a__U11(tt(), L) -> s(a__length(mark(L)))
  , a__length(X) -> length(X)
  , a__length(cons(N, L)) ->
    a__U11(a__and(a__isNatList(L), isNat(N)), L)
  , a__length(nil()) -> 0()
  , mark(cons(X1, X2)) -> cons(mark(X1), X2)
  , mark(0()) -> 0()
  , mark(zeros()) -> a__zeros()
  , mark(tt()) -> tt()
  , mark(s(X)) -> s(mark(X))
  , mark(nil()) -> nil()
  , mark(take(X1, X2)) -> a__take(mark(X1), mark(X2))
  , mark(length(X)) -> a__length(mark(X))
  , mark(isNatIList(X)) -> a__isNatIList(X)
  , mark(isNatList(X)) -> a__isNatList(X)
  , mark(isNat(X)) -> a__isNat(X)
  , mark(and(X1, X2)) -> a__and(mark(X1), X2)
  , mark(U11(X1, X2)) -> a__U11(mark(X1), X2)
  , mark(U21(X)) -> a__U21(mark(X))
  , mark(U31(X1, X2, X3, X4)) -> a__U31(mark(X1), X2, X3, X4)
  , a__U21(X) -> U21(X)
  , a__U21(tt()) -> nil()
  , a__U31(X1, X2, X3, X4) -> U31(X1, X2, X3, X4)
  , a__U31(tt(), IL, M, N) -> cons(mark(N), take(M, IL))
  , a__and(X1, X2) -> and(X1, X2)
  , a__and(tt(), X) -> mark(X)
  , a__isNat(X) -> isNat(X)
  , a__isNat(0()) -> tt()
  , a__isNat(s(V1)) -> a__isNat(V1)
  , a__isNat(length(V1)) -> a__isNatList(V1)
  , a__isNatList(X) -> isNatList(X)
  , a__isNatList(cons(V1, V2)) -> a__and(a__isNat(V1), isNatList(V2))
  , a__isNatList(nil()) -> tt()
  , a__isNatList(take(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(V) -> a__isNatList(V)
  , a__isNatIList(X) -> isNatIList(X)
  , a__isNatIList(cons(V1, V2)) ->
    a__and(a__isNat(V1), isNatIList(V2))
  , a__isNatIList(zeros()) -> tt()
  , a__take(X1, X2) -> take(X1, X2)
  , a__take(0(), IL) -> a__U21(a__isNatIList(IL))
  , a__take(s(M), cons(N, IL)) ->
    a__U31(a__and(a__isNatIList(IL), and(isNat(M), isNat(N))),
           IL,
           M,
           N) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..