MAYBE

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

Strict Trs:
  { active(zeros()) -> mark(cons(0(), zeros()))
  , active(cons(X1, X2)) -> cons(active(X1), X2)
  , active(U11(X1, X2)) -> U11(active(X1), X2)
  , active(U11(tt(), L)) -> mark(s(length(L)))
  , active(s(X)) -> s(active(X))
  , active(length(X)) -> length(active(X))
  , active(length(cons(N, L))) ->
    mark(U11(and(isNatList(L), isNat(N)), L))
  , active(length(nil())) -> mark(0())
  , active(and(X1, X2)) -> and(active(X1), X2)
  , active(and(tt(), X)) -> mark(X)
  , active(isNat(0())) -> mark(tt())
  , active(isNat(s(V1))) -> mark(isNat(V1))
  , active(isNat(length(V1))) -> mark(isNatList(V1))
  , active(isNatList(cons(V1, V2))) ->
    mark(and(isNat(V1), isNatList(V2)))
  , active(isNatList(nil())) -> mark(tt())
  , active(isNatIList(V)) -> mark(isNatList(V))
  , active(isNatIList(zeros())) -> mark(tt())
  , active(isNatIList(cons(V1, V2))) ->
    mark(and(isNat(V1), isNatIList(V2)))
  , cons(mark(X1), X2) -> mark(cons(X1, X2))
  , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
  , U11(mark(X1), X2) -> mark(U11(X1, X2))
  , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2))
  , s(mark(X)) -> mark(s(X))
  , s(ok(X)) -> ok(s(X))
  , length(mark(X)) -> mark(length(X))
  , length(ok(X)) -> ok(length(X))
  , and(mark(X1), X2) -> mark(and(X1, X2))
  , and(ok(X1), ok(X2)) -> ok(and(X1, X2))
  , isNat(ok(X)) -> ok(isNat(X))
  , isNatList(ok(X)) -> ok(isNatList(X))
  , isNatIList(ok(X)) -> ok(isNatIList(X))
  , proper(zeros()) -> ok(zeros())
  , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
  , proper(0()) -> ok(0())
  , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2))
  , proper(tt()) -> ok(tt())
  , proper(s(X)) -> s(proper(X))
  , proper(length(X)) -> length(proper(X))
  , proper(and(X1, X2)) -> and(proper(X1), proper(X2))
  , proper(isNat(X)) -> isNat(proper(X))
  , proper(isNatList(X)) -> isNatList(proper(X))
  , proper(isNatIList(X)) -> isNatIList(proper(X))
  , proper(nil()) -> ok(nil())
  , top(mark(X)) -> top(proper(X))
  , top(ok(X)) -> top(active(X)) }
Obligation:
  runtime complexity
Answer:
  MAYBE

None of the processors succeeded.

Details of failed attempt(s):
-----------------------------
1) 'WithProblem (timeout of 60 seconds)' failed due to the
   following reason:
   
   Computation stopped due to timeout after 60.0 seconds.

2) 'Best' failed due to the following reason:
   
   None of the processors succeeded.
   
   Details of failed attempt(s):
   -----------------------------
   1) 'WithProblem (timeout of 30 seconds) (timeout of 60 seconds)'
      failed due to the following reason:
      
      Computation stopped due to timeout after 30.0 seconds.
   
   2) 'Best' failed due to the following reason:
      
      None of the processors succeeded.
      
      Details of failed attempt(s):
      -----------------------------
      1) 'bsearch-popstar (timeout of 60 seconds)' failed due to the
         following reason:
         
         The processor is inapplicable, reason:
           Processor only applicable for innermost runtime complexity analysis
      
      2) 'Polynomial Path Order (PS) (timeout of 60 seconds)' failed due
         to the following reason:
         
         The processor is inapplicable, reason:
           Processor only applicable for innermost runtime complexity analysis
      
   
   3) 'Fastest (timeout of 5 seconds) (timeout of 60 seconds)' failed
      due to the following reason:
      
      None of the processors succeeded.
      
      Details of failed attempt(s):
      -----------------------------
      1) 'Bounds with perSymbol-enrichment and initial automaton 'match''
         failed due to the following reason:
         
         match-boundness of the problem could not be verified.
      
      2) 'Bounds with minimal-enrichment and initial automaton 'match''
         failed due to the following reason:
         
         match-boundness of the problem could not be verified.
      
   

3) 'Innermost Weak Dependency Pairs (timeout of 60 seconds)' failed
   due to the following reason:
   
   We add the following weak dependency pairs:
   
   Strict DPs:
     { active^#(zeros()) -> c_1(cons^#(0(), zeros()))
     , active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2))
     , active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2))
     , active^#(U11(tt(), L)) -> c_4(s^#(length(L)))
     , active^#(s(X)) -> c_5(s^#(active(X)))
     , active^#(length(X)) -> c_6(length^#(active(X)))
     , active^#(length(cons(N, L))) ->
       c_7(U11^#(and(isNatList(L), isNat(N)), L))
     , active^#(length(nil())) -> c_8()
     , active^#(and(X1, X2)) -> c_9(and^#(active(X1), X2))
     , active^#(and(tt(), X)) -> c_10(X)
     , active^#(isNat(0())) -> c_11()
     , active^#(isNat(s(V1))) -> c_12(isNat^#(V1))
     , active^#(isNat(length(V1))) -> c_13(isNatList^#(V1))
     , active^#(isNatList(cons(V1, V2))) ->
       c_14(and^#(isNat(V1), isNatList(V2)))
     , active^#(isNatList(nil())) -> c_15()
     , active^#(isNatIList(V)) -> c_16(isNatList^#(V))
     , active^#(isNatIList(zeros())) -> c_17()
     , active^#(isNatIList(cons(V1, V2))) ->
       c_18(and^#(isNat(V1), isNatIList(V2)))
     , cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2))
     , cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2))
     , U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2))
     , U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2))
     , s^#(mark(X)) -> c_23(s^#(X))
     , s^#(ok(X)) -> c_24(s^#(X))
     , length^#(mark(X)) -> c_25(length^#(X))
     , length^#(ok(X)) -> c_26(length^#(X))
     , and^#(mark(X1), X2) -> c_27(and^#(X1, X2))
     , and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2))
     , isNat^#(ok(X)) -> c_29(isNat^#(X))
     , isNatList^#(ok(X)) -> c_30(isNatList^#(X))
     , isNatIList^#(ok(X)) -> c_31(isNatIList^#(X))
     , proper^#(zeros()) -> c_32()
     , proper^#(cons(X1, X2)) -> c_33(cons^#(proper(X1), proper(X2)))
     , proper^#(0()) -> c_34()
     , proper^#(U11(X1, X2)) -> c_35(U11^#(proper(X1), proper(X2)))
     , proper^#(tt()) -> c_36()
     , proper^#(s(X)) -> c_37(s^#(proper(X)))
     , proper^#(length(X)) -> c_38(length^#(proper(X)))
     , proper^#(and(X1, X2)) -> c_39(and^#(proper(X1), proper(X2)))
     , proper^#(isNat(X)) -> c_40(isNat^#(proper(X)))
     , proper^#(isNatList(X)) -> c_41(isNatList^#(proper(X)))
     , proper^#(isNatIList(X)) -> c_42(isNatIList^#(proper(X)))
     , proper^#(nil()) -> c_43()
     , top^#(mark(X)) -> c_44(top^#(proper(X)))
     , top^#(ok(X)) -> c_45(top^#(active(X))) }
   
   and mark the set of starting terms.
   
   We are left with following problem, upon which TcT provides the
   certificate MAYBE.
   
   Strict DPs:
     { active^#(zeros()) -> c_1(cons^#(0(), zeros()))
     , active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2))
     , active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2))
     , active^#(U11(tt(), L)) -> c_4(s^#(length(L)))
     , active^#(s(X)) -> c_5(s^#(active(X)))
     , active^#(length(X)) -> c_6(length^#(active(X)))
     , active^#(length(cons(N, L))) ->
       c_7(U11^#(and(isNatList(L), isNat(N)), L))
     , active^#(length(nil())) -> c_8()
     , active^#(and(X1, X2)) -> c_9(and^#(active(X1), X2))
     , active^#(and(tt(), X)) -> c_10(X)
     , active^#(isNat(0())) -> c_11()
     , active^#(isNat(s(V1))) -> c_12(isNat^#(V1))
     , active^#(isNat(length(V1))) -> c_13(isNatList^#(V1))
     , active^#(isNatList(cons(V1, V2))) ->
       c_14(and^#(isNat(V1), isNatList(V2)))
     , active^#(isNatList(nil())) -> c_15()
     , active^#(isNatIList(V)) -> c_16(isNatList^#(V))
     , active^#(isNatIList(zeros())) -> c_17()
     , active^#(isNatIList(cons(V1, V2))) ->
       c_18(and^#(isNat(V1), isNatIList(V2)))
     , cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2))
     , cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2))
     , U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2))
     , U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2))
     , s^#(mark(X)) -> c_23(s^#(X))
     , s^#(ok(X)) -> c_24(s^#(X))
     , length^#(mark(X)) -> c_25(length^#(X))
     , length^#(ok(X)) -> c_26(length^#(X))
     , and^#(mark(X1), X2) -> c_27(and^#(X1, X2))
     , and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2))
     , isNat^#(ok(X)) -> c_29(isNat^#(X))
     , isNatList^#(ok(X)) -> c_30(isNatList^#(X))
     , isNatIList^#(ok(X)) -> c_31(isNatIList^#(X))
     , proper^#(zeros()) -> c_32()
     , proper^#(cons(X1, X2)) -> c_33(cons^#(proper(X1), proper(X2)))
     , proper^#(0()) -> c_34()
     , proper^#(U11(X1, X2)) -> c_35(U11^#(proper(X1), proper(X2)))
     , proper^#(tt()) -> c_36()
     , proper^#(s(X)) -> c_37(s^#(proper(X)))
     , proper^#(length(X)) -> c_38(length^#(proper(X)))
     , proper^#(and(X1, X2)) -> c_39(and^#(proper(X1), proper(X2)))
     , proper^#(isNat(X)) -> c_40(isNat^#(proper(X)))
     , proper^#(isNatList(X)) -> c_41(isNatList^#(proper(X)))
     , proper^#(isNatIList(X)) -> c_42(isNatIList^#(proper(X)))
     , proper^#(nil()) -> c_43()
     , top^#(mark(X)) -> c_44(top^#(proper(X)))
     , top^#(ok(X)) -> c_45(top^#(active(X))) }
   Strict Trs:
     { active(zeros()) -> mark(cons(0(), zeros()))
     , active(cons(X1, X2)) -> cons(active(X1), X2)
     , active(U11(X1, X2)) -> U11(active(X1), X2)
     , active(U11(tt(), L)) -> mark(s(length(L)))
     , active(s(X)) -> s(active(X))
     , active(length(X)) -> length(active(X))
     , active(length(cons(N, L))) ->
       mark(U11(and(isNatList(L), isNat(N)), L))
     , active(length(nil())) -> mark(0())
     , active(and(X1, X2)) -> and(active(X1), X2)
     , active(and(tt(), X)) -> mark(X)
     , active(isNat(0())) -> mark(tt())
     , active(isNat(s(V1))) -> mark(isNat(V1))
     , active(isNat(length(V1))) -> mark(isNatList(V1))
     , active(isNatList(cons(V1, V2))) ->
       mark(and(isNat(V1), isNatList(V2)))
     , active(isNatList(nil())) -> mark(tt())
     , active(isNatIList(V)) -> mark(isNatList(V))
     , active(isNatIList(zeros())) -> mark(tt())
     , active(isNatIList(cons(V1, V2))) ->
       mark(and(isNat(V1), isNatIList(V2)))
     , cons(mark(X1), X2) -> mark(cons(X1, X2))
     , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
     , U11(mark(X1), X2) -> mark(U11(X1, X2))
     , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2))
     , s(mark(X)) -> mark(s(X))
     , s(ok(X)) -> ok(s(X))
     , length(mark(X)) -> mark(length(X))
     , length(ok(X)) -> ok(length(X))
     , and(mark(X1), X2) -> mark(and(X1, X2))
     , and(ok(X1), ok(X2)) -> ok(and(X1, X2))
     , isNat(ok(X)) -> ok(isNat(X))
     , isNatList(ok(X)) -> ok(isNatList(X))
     , isNatIList(ok(X)) -> ok(isNatIList(X))
     , proper(zeros()) -> ok(zeros())
     , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
     , proper(0()) -> ok(0())
     , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2))
     , proper(tt()) -> ok(tt())
     , proper(s(X)) -> s(proper(X))
     , proper(length(X)) -> length(proper(X))
     , proper(and(X1, X2)) -> and(proper(X1), proper(X2))
     , proper(isNat(X)) -> isNat(proper(X))
     , proper(isNatList(X)) -> isNatList(proper(X))
     , proper(isNatIList(X)) -> isNatIList(proper(X))
     , proper(nil()) -> ok(nil())
     , top(mark(X)) -> top(proper(X))
     , top(ok(X)) -> top(active(X)) }
   Obligation:
     runtime complexity
   Answer:
     MAYBE
   
   Consider the dependency graph:
   
     1: active^#(zeros()) -> c_1(cons^#(0(), zeros()))
     
     2: active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2))
        -->_1 cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2)) :20
        -->_1 cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2)) :19
     
     3: active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2))
        -->_1 U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2)) :22
        -->_1 U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2)) :21
     
     4: active^#(U11(tt(), L)) -> c_4(s^#(length(L)))
        -->_1 s^#(ok(X)) -> c_24(s^#(X)) :24
        -->_1 s^#(mark(X)) -> c_23(s^#(X)) :23
     
     5: active^#(s(X)) -> c_5(s^#(active(X)))
        -->_1 s^#(ok(X)) -> c_24(s^#(X)) :24
        -->_1 s^#(mark(X)) -> c_23(s^#(X)) :23
     
     6: active^#(length(X)) -> c_6(length^#(active(X)))
        -->_1 length^#(ok(X)) -> c_26(length^#(X)) :26
        -->_1 length^#(mark(X)) -> c_25(length^#(X)) :25
     
     7: active^#(length(cons(N, L))) ->
        c_7(U11^#(and(isNatList(L), isNat(N)), L))
        -->_1 U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2)) :22
        -->_1 U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2)) :21
     
     8: active^#(length(nil())) -> c_8()
     
     9: active^#(and(X1, X2)) -> c_9(and^#(active(X1), X2))
        -->_1 and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2)) :28
        -->_1 and^#(mark(X1), X2) -> c_27(and^#(X1, X2)) :27
     
     10: active^#(and(tt(), X)) -> c_10(X)
        -->_1 top^#(ok(X)) -> c_45(top^#(active(X))) :45
        -->_1 top^#(mark(X)) -> c_44(top^#(proper(X))) :44
        -->_1 proper^#(isNatIList(X)) -> c_42(isNatIList^#(proper(X))) :42
        -->_1 proper^#(isNatList(X)) -> c_41(isNatList^#(proper(X))) :41
        -->_1 proper^#(isNat(X)) -> c_40(isNat^#(proper(X))) :40
        -->_1 proper^#(and(X1, X2)) ->
              c_39(and^#(proper(X1), proper(X2))) :39
        -->_1 proper^#(length(X)) -> c_38(length^#(proper(X))) :38
        -->_1 proper^#(s(X)) -> c_37(s^#(proper(X))) :37
        -->_1 proper^#(U11(X1, X2)) ->
              c_35(U11^#(proper(X1), proper(X2))) :35
        -->_1 proper^#(cons(X1, X2)) ->
              c_33(cons^#(proper(X1), proper(X2))) :33
        -->_1 isNatIList^#(ok(X)) -> c_31(isNatIList^#(X)) :31
        -->_1 isNatList^#(ok(X)) -> c_30(isNatList^#(X)) :30
        -->_1 isNat^#(ok(X)) -> c_29(isNat^#(X)) :29
        -->_1 and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2)) :28
        -->_1 and^#(mark(X1), X2) -> c_27(and^#(X1, X2)) :27
        -->_1 length^#(ok(X)) -> c_26(length^#(X)) :26
        -->_1 length^#(mark(X)) -> c_25(length^#(X)) :25
        -->_1 s^#(ok(X)) -> c_24(s^#(X)) :24
        -->_1 s^#(mark(X)) -> c_23(s^#(X)) :23
        -->_1 U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2)) :22
        -->_1 U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2)) :21
        -->_1 cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2)) :20
        -->_1 cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2)) :19
        -->_1 active^#(isNatIList(cons(V1, V2))) ->
              c_18(and^#(isNat(V1), isNatIList(V2))) :18
        -->_1 active^#(isNatIList(V)) -> c_16(isNatList^#(V)) :16
        -->_1 active^#(isNatList(cons(V1, V2))) ->
              c_14(and^#(isNat(V1), isNatList(V2))) :14
        -->_1 active^#(isNat(length(V1))) -> c_13(isNatList^#(V1)) :13
        -->_1 active^#(isNat(s(V1))) -> c_12(isNat^#(V1)) :12
        -->_1 proper^#(nil()) -> c_43() :43
        -->_1 proper^#(tt()) -> c_36() :36
        -->_1 proper^#(0()) -> c_34() :34
        -->_1 proper^#(zeros()) -> c_32() :32
        -->_1 active^#(isNatIList(zeros())) -> c_17() :17
        -->_1 active^#(isNatList(nil())) -> c_15() :15
        -->_1 active^#(isNat(0())) -> c_11() :11
        -->_1 active^#(and(tt(), X)) -> c_10(X) :10
        -->_1 active^#(and(X1, X2)) -> c_9(and^#(active(X1), X2)) :9
        -->_1 active^#(length(nil())) -> c_8() :8
        -->_1 active^#(length(cons(N, L))) ->
              c_7(U11^#(and(isNatList(L), isNat(N)), L)) :7
        -->_1 active^#(length(X)) -> c_6(length^#(active(X))) :6
        -->_1 active^#(s(X)) -> c_5(s^#(active(X))) :5
        -->_1 active^#(U11(tt(), L)) -> c_4(s^#(length(L))) :4
        -->_1 active^#(U11(X1, X2)) -> c_3(U11^#(active(X1), X2)) :3
        -->_1 active^#(cons(X1, X2)) -> c_2(cons^#(active(X1), X2)) :2
        -->_1 active^#(zeros()) -> c_1(cons^#(0(), zeros())) :1
     
     11: active^#(isNat(0())) -> c_11()
     
     12: active^#(isNat(s(V1))) -> c_12(isNat^#(V1))
        -->_1 isNat^#(ok(X)) -> c_29(isNat^#(X)) :29
     
     13: active^#(isNat(length(V1))) -> c_13(isNatList^#(V1))
        -->_1 isNatList^#(ok(X)) -> c_30(isNatList^#(X)) :30
     
     14: active^#(isNatList(cons(V1, V2))) ->
         c_14(and^#(isNat(V1), isNatList(V2)))
        -->_1 and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2)) :28
        -->_1 and^#(mark(X1), X2) -> c_27(and^#(X1, X2)) :27
     
     15: active^#(isNatList(nil())) -> c_15()
     
     16: active^#(isNatIList(V)) -> c_16(isNatList^#(V))
        -->_1 isNatList^#(ok(X)) -> c_30(isNatList^#(X)) :30
     
     17: active^#(isNatIList(zeros())) -> c_17()
     
     18: active^#(isNatIList(cons(V1, V2))) ->
         c_18(and^#(isNat(V1), isNatIList(V2)))
        -->_1 and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2)) :28
        -->_1 and^#(mark(X1), X2) -> c_27(and^#(X1, X2)) :27
     
     19: cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2))
        -->_1 cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2)) :20
        -->_1 cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2)) :19
     
     20: cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2))
        -->_1 cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2)) :20
        -->_1 cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2)) :19
     
     21: U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2))
        -->_1 U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2)) :22
        -->_1 U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2)) :21
     
     22: U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2))
        -->_1 U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2)) :22
        -->_1 U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2)) :21
     
     23: s^#(mark(X)) -> c_23(s^#(X))
        -->_1 s^#(ok(X)) -> c_24(s^#(X)) :24
        -->_1 s^#(mark(X)) -> c_23(s^#(X)) :23
     
     24: s^#(ok(X)) -> c_24(s^#(X))
        -->_1 s^#(ok(X)) -> c_24(s^#(X)) :24
        -->_1 s^#(mark(X)) -> c_23(s^#(X)) :23
     
     25: length^#(mark(X)) -> c_25(length^#(X))
        -->_1 length^#(ok(X)) -> c_26(length^#(X)) :26
        -->_1 length^#(mark(X)) -> c_25(length^#(X)) :25
     
     26: length^#(ok(X)) -> c_26(length^#(X))
        -->_1 length^#(ok(X)) -> c_26(length^#(X)) :26
        -->_1 length^#(mark(X)) -> c_25(length^#(X)) :25
     
     27: and^#(mark(X1), X2) -> c_27(and^#(X1, X2))
        -->_1 and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2)) :28
        -->_1 and^#(mark(X1), X2) -> c_27(and^#(X1, X2)) :27
     
     28: and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2))
        -->_1 and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2)) :28
        -->_1 and^#(mark(X1), X2) -> c_27(and^#(X1, X2)) :27
     
     29: isNat^#(ok(X)) -> c_29(isNat^#(X))
        -->_1 isNat^#(ok(X)) -> c_29(isNat^#(X)) :29
     
     30: isNatList^#(ok(X)) -> c_30(isNatList^#(X))
        -->_1 isNatList^#(ok(X)) -> c_30(isNatList^#(X)) :30
     
     31: isNatIList^#(ok(X)) -> c_31(isNatIList^#(X))
        -->_1 isNatIList^#(ok(X)) -> c_31(isNatIList^#(X)) :31
     
     32: proper^#(zeros()) -> c_32()
     
     33: proper^#(cons(X1, X2)) -> c_33(cons^#(proper(X1), proper(X2)))
        -->_1 cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2)) :20
        -->_1 cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2)) :19
     
     34: proper^#(0()) -> c_34()
     
     35: proper^#(U11(X1, X2)) -> c_35(U11^#(proper(X1), proper(X2)))
        -->_1 U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2)) :22
        -->_1 U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2)) :21
     
     36: proper^#(tt()) -> c_36()
     
     37: proper^#(s(X)) -> c_37(s^#(proper(X)))
        -->_1 s^#(ok(X)) -> c_24(s^#(X)) :24
        -->_1 s^#(mark(X)) -> c_23(s^#(X)) :23
     
     38: proper^#(length(X)) -> c_38(length^#(proper(X)))
        -->_1 length^#(ok(X)) -> c_26(length^#(X)) :26
        -->_1 length^#(mark(X)) -> c_25(length^#(X)) :25
     
     39: proper^#(and(X1, X2)) -> c_39(and^#(proper(X1), proper(X2)))
        -->_1 and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2)) :28
        -->_1 and^#(mark(X1), X2) -> c_27(and^#(X1, X2)) :27
     
     40: proper^#(isNat(X)) -> c_40(isNat^#(proper(X)))
        -->_1 isNat^#(ok(X)) -> c_29(isNat^#(X)) :29
     
     41: proper^#(isNatList(X)) -> c_41(isNatList^#(proper(X)))
        -->_1 isNatList^#(ok(X)) -> c_30(isNatList^#(X)) :30
     
     42: proper^#(isNatIList(X)) -> c_42(isNatIList^#(proper(X)))
        -->_1 isNatIList^#(ok(X)) -> c_31(isNatIList^#(X)) :31
     
     43: proper^#(nil()) -> c_43()
     
     44: top^#(mark(X)) -> c_44(top^#(proper(X)))
        -->_1 top^#(ok(X)) -> c_45(top^#(active(X))) :45
        -->_1 top^#(mark(X)) -> c_44(top^#(proper(X))) :44
     
     45: top^#(ok(X)) -> c_45(top^#(active(X)))
        -->_1 top^#(ok(X)) -> c_45(top^#(active(X))) :45
        -->_1 top^#(mark(X)) -> c_44(top^#(proper(X))) :44
     
   
   Only the nodes
   {1,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,43,44,45} are
   reachable from nodes
   {1,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,43,44,45} that
   start derivation from marked basic terms. The nodes not reachable
   are removed from the problem.
   
   We are left with following problem, upon which TcT provides the
   certificate MAYBE.
   
   Strict DPs:
     { active^#(zeros()) -> c_1(cons^#(0(), zeros()))
     , cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2))
     , cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2))
     , U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2))
     , U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2))
     , s^#(mark(X)) -> c_23(s^#(X))
     , s^#(ok(X)) -> c_24(s^#(X))
     , length^#(mark(X)) -> c_25(length^#(X))
     , length^#(ok(X)) -> c_26(length^#(X))
     , and^#(mark(X1), X2) -> c_27(and^#(X1, X2))
     , and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2))
     , isNat^#(ok(X)) -> c_29(isNat^#(X))
     , isNatList^#(ok(X)) -> c_30(isNatList^#(X))
     , isNatIList^#(ok(X)) -> c_31(isNatIList^#(X))
     , proper^#(zeros()) -> c_32()
     , proper^#(0()) -> c_34()
     , proper^#(tt()) -> c_36()
     , proper^#(nil()) -> c_43()
     , top^#(mark(X)) -> c_44(top^#(proper(X)))
     , top^#(ok(X)) -> c_45(top^#(active(X))) }
   Strict Trs:
     { active(zeros()) -> mark(cons(0(), zeros()))
     , active(cons(X1, X2)) -> cons(active(X1), X2)
     , active(U11(X1, X2)) -> U11(active(X1), X2)
     , active(U11(tt(), L)) -> mark(s(length(L)))
     , active(s(X)) -> s(active(X))
     , active(length(X)) -> length(active(X))
     , active(length(cons(N, L))) ->
       mark(U11(and(isNatList(L), isNat(N)), L))
     , active(length(nil())) -> mark(0())
     , active(and(X1, X2)) -> and(active(X1), X2)
     , active(and(tt(), X)) -> mark(X)
     , active(isNat(0())) -> mark(tt())
     , active(isNat(s(V1))) -> mark(isNat(V1))
     , active(isNat(length(V1))) -> mark(isNatList(V1))
     , active(isNatList(cons(V1, V2))) ->
       mark(and(isNat(V1), isNatList(V2)))
     , active(isNatList(nil())) -> mark(tt())
     , active(isNatIList(V)) -> mark(isNatList(V))
     , active(isNatIList(zeros())) -> mark(tt())
     , active(isNatIList(cons(V1, V2))) ->
       mark(and(isNat(V1), isNatIList(V2)))
     , cons(mark(X1), X2) -> mark(cons(X1, X2))
     , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
     , U11(mark(X1), X2) -> mark(U11(X1, X2))
     , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2))
     , s(mark(X)) -> mark(s(X))
     , s(ok(X)) -> ok(s(X))
     , length(mark(X)) -> mark(length(X))
     , length(ok(X)) -> ok(length(X))
     , and(mark(X1), X2) -> mark(and(X1, X2))
     , and(ok(X1), ok(X2)) -> ok(and(X1, X2))
     , isNat(ok(X)) -> ok(isNat(X))
     , isNatList(ok(X)) -> ok(isNatList(X))
     , isNatIList(ok(X)) -> ok(isNatIList(X))
     , proper(zeros()) -> ok(zeros())
     , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
     , proper(0()) -> ok(0())
     , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2))
     , proper(tt()) -> ok(tt())
     , proper(s(X)) -> s(proper(X))
     , proper(length(X)) -> length(proper(X))
     , proper(and(X1, X2)) -> and(proper(X1), proper(X2))
     , proper(isNat(X)) -> isNat(proper(X))
     , proper(isNatList(X)) -> isNatList(proper(X))
     , proper(isNatIList(X)) -> isNatIList(proper(X))
     , proper(nil()) -> ok(nil())
     , top(mark(X)) -> top(proper(X))
     , top(ok(X)) -> top(active(X)) }
   Obligation:
     runtime complexity
   Answer:
     MAYBE
   
   We estimate the number of application of {1,15,16,17,18} by
   applications of Pre({1,15,16,17,18}) = {}. Here rules are labeled
   as follows:
   
     DPs:
       { 1: active^#(zeros()) -> c_1(cons^#(0(), zeros()))
       , 2: cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2))
       , 3: cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2))
       , 4: U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2))
       , 5: U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2))
       , 6: s^#(mark(X)) -> c_23(s^#(X))
       , 7: s^#(ok(X)) -> c_24(s^#(X))
       , 8: length^#(mark(X)) -> c_25(length^#(X))
       , 9: length^#(ok(X)) -> c_26(length^#(X))
       , 10: and^#(mark(X1), X2) -> c_27(and^#(X1, X2))
       , 11: and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2))
       , 12: isNat^#(ok(X)) -> c_29(isNat^#(X))
       , 13: isNatList^#(ok(X)) -> c_30(isNatList^#(X))
       , 14: isNatIList^#(ok(X)) -> c_31(isNatIList^#(X))
       , 15: proper^#(zeros()) -> c_32()
       , 16: proper^#(0()) -> c_34()
       , 17: proper^#(tt()) -> c_36()
       , 18: proper^#(nil()) -> c_43()
       , 19: top^#(mark(X)) -> c_44(top^#(proper(X)))
       , 20: top^#(ok(X)) -> c_45(top^#(active(X))) }
   
   We are left with following problem, upon which TcT provides the
   certificate MAYBE.
   
   Strict DPs:
     { cons^#(mark(X1), X2) -> c_19(cons^#(X1, X2))
     , cons^#(ok(X1), ok(X2)) -> c_20(cons^#(X1, X2))
     , U11^#(mark(X1), X2) -> c_21(U11^#(X1, X2))
     , U11^#(ok(X1), ok(X2)) -> c_22(U11^#(X1, X2))
     , s^#(mark(X)) -> c_23(s^#(X))
     , s^#(ok(X)) -> c_24(s^#(X))
     , length^#(mark(X)) -> c_25(length^#(X))
     , length^#(ok(X)) -> c_26(length^#(X))
     , and^#(mark(X1), X2) -> c_27(and^#(X1, X2))
     , and^#(ok(X1), ok(X2)) -> c_28(and^#(X1, X2))
     , isNat^#(ok(X)) -> c_29(isNat^#(X))
     , isNatList^#(ok(X)) -> c_30(isNatList^#(X))
     , isNatIList^#(ok(X)) -> c_31(isNatIList^#(X))
     , top^#(mark(X)) -> c_44(top^#(proper(X)))
     , top^#(ok(X)) -> c_45(top^#(active(X))) }
   Strict Trs:
     { active(zeros()) -> mark(cons(0(), zeros()))
     , active(cons(X1, X2)) -> cons(active(X1), X2)
     , active(U11(X1, X2)) -> U11(active(X1), X2)
     , active(U11(tt(), L)) -> mark(s(length(L)))
     , active(s(X)) -> s(active(X))
     , active(length(X)) -> length(active(X))
     , active(length(cons(N, L))) ->
       mark(U11(and(isNatList(L), isNat(N)), L))
     , active(length(nil())) -> mark(0())
     , active(and(X1, X2)) -> and(active(X1), X2)
     , active(and(tt(), X)) -> mark(X)
     , active(isNat(0())) -> mark(tt())
     , active(isNat(s(V1))) -> mark(isNat(V1))
     , active(isNat(length(V1))) -> mark(isNatList(V1))
     , active(isNatList(cons(V1, V2))) ->
       mark(and(isNat(V1), isNatList(V2)))
     , active(isNatList(nil())) -> mark(tt())
     , active(isNatIList(V)) -> mark(isNatList(V))
     , active(isNatIList(zeros())) -> mark(tt())
     , active(isNatIList(cons(V1, V2))) ->
       mark(and(isNat(V1), isNatIList(V2)))
     , cons(mark(X1), X2) -> mark(cons(X1, X2))
     , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2))
     , U11(mark(X1), X2) -> mark(U11(X1, X2))
     , U11(ok(X1), ok(X2)) -> ok(U11(X1, X2))
     , s(mark(X)) -> mark(s(X))
     , s(ok(X)) -> ok(s(X))
     , length(mark(X)) -> mark(length(X))
     , length(ok(X)) -> ok(length(X))
     , and(mark(X1), X2) -> mark(and(X1, X2))
     , and(ok(X1), ok(X2)) -> ok(and(X1, X2))
     , isNat(ok(X)) -> ok(isNat(X))
     , isNatList(ok(X)) -> ok(isNatList(X))
     , isNatIList(ok(X)) -> ok(isNatIList(X))
     , proper(zeros()) -> ok(zeros())
     , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2))
     , proper(0()) -> ok(0())
     , proper(U11(X1, X2)) -> U11(proper(X1), proper(X2))
     , proper(tt()) -> ok(tt())
     , proper(s(X)) -> s(proper(X))
     , proper(length(X)) -> length(proper(X))
     , proper(and(X1, X2)) -> and(proper(X1), proper(X2))
     , proper(isNat(X)) -> isNat(proper(X))
     , proper(isNatList(X)) -> isNatList(proper(X))
     , proper(isNatIList(X)) -> isNatIList(proper(X))
     , proper(nil()) -> ok(nil())
     , top(mark(X)) -> top(proper(X))
     , top(ok(X)) -> top(active(X)) }
   Weak DPs:
     { active^#(zeros()) -> c_1(cons^#(0(), zeros()))
     , proper^#(zeros()) -> c_32()
     , proper^#(0()) -> c_34()
     , proper^#(tt()) -> c_36()
     , proper^#(nil()) -> c_43() }
   Obligation:
     runtime complexity
   Answer:
     MAYBE
   
   Empty strict component of the problem is NOT empty.


Arrrr..