MAYBE

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

Strict Trs:
  { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y)
  , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs)
  , plus(x, 0()) -> x
  , plus(x, s(y)) -> s(plus(x, y))
  , length(nil()) -> 0()
  , length(cons(x, y)) -> s(length(y))
  , if(true(), c, l, ys, zs) -> nil()
  , if(false(), c, l, ys, zs) ->
    helpb(c, l, greater(ys, zs), smaller(ys, zs))
  , ge(x, 0()) -> true()
  , ge(0(), s(x)) -> false()
  , ge(s(x), s(y)) -> ge(x, y)
  , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs))
  , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs)
  , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys)
  , helpc(true(), ys, zs) -> ys
  , helpc(false(), ys, zs) -> zs }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We add following dependency tuples:

Strict DPs:
  { app^#(x, y) ->
    c_1(helpa^#(0(), plus(length(x), length(y)), x, y),
        plus^#(length(x), length(y)),
        length^#(x),
        length^#(y))
  , helpa^#(c, l, ys, zs) ->
    c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l))
  , plus^#(x, 0()) -> c_3()
  , plus^#(x, s(y)) -> c_4(plus^#(x, y))
  , length^#(nil()) -> c_5()
  , length^#(cons(x, y)) -> c_6(length^#(y))
  , if^#(true(), c, l, ys, zs) -> c_7()
  , if^#(false(), c, l, ys, zs) ->
    c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)),
        greater^#(ys, zs),
        smaller^#(ys, zs))
  , ge^#(x, 0()) -> c_9()
  , ge^#(0(), s(x)) -> c_10()
  , ge^#(s(x), s(y)) -> c_11(ge^#(x, y))
  , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs))
  , greater^#(ys, zs) ->
    c_13(helpc^#(ge(length(ys), length(zs)), ys, zs),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs))
  , smaller^#(ys, zs) ->
    c_14(helpc^#(ge(length(ys), length(zs)), zs, ys),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs))
  , helpc^#(true(), ys, zs) -> c_15()
  , helpc^#(false(), ys, zs) -> c_16() }

and mark the set of starting terms.

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

Strict DPs:
  { app^#(x, y) ->
    c_1(helpa^#(0(), plus(length(x), length(y)), x, y),
        plus^#(length(x), length(y)),
        length^#(x),
        length^#(y))
  , helpa^#(c, l, ys, zs) ->
    c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l))
  , plus^#(x, 0()) -> c_3()
  , plus^#(x, s(y)) -> c_4(plus^#(x, y))
  , length^#(nil()) -> c_5()
  , length^#(cons(x, y)) -> c_6(length^#(y))
  , if^#(true(), c, l, ys, zs) -> c_7()
  , if^#(false(), c, l, ys, zs) ->
    c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)),
        greater^#(ys, zs),
        smaller^#(ys, zs))
  , ge^#(x, 0()) -> c_9()
  , ge^#(0(), s(x)) -> c_10()
  , ge^#(s(x), s(y)) -> c_11(ge^#(x, y))
  , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs))
  , greater^#(ys, zs) ->
    c_13(helpc^#(ge(length(ys), length(zs)), ys, zs),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs))
  , smaller^#(ys, zs) ->
    c_14(helpc^#(ge(length(ys), length(zs)), zs, ys),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs))
  , helpc^#(true(), ys, zs) -> c_15()
  , helpc^#(false(), ys, zs) -> c_16() }
Weak Trs:
  { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y)
  , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs)
  , plus(x, 0()) -> x
  , plus(x, s(y)) -> s(plus(x, y))
  , length(nil()) -> 0()
  , length(cons(x, y)) -> s(length(y))
  , if(true(), c, l, ys, zs) -> nil()
  , if(false(), c, l, ys, zs) ->
    helpb(c, l, greater(ys, zs), smaller(ys, zs))
  , ge(x, 0()) -> true()
  , ge(0(), s(x)) -> false()
  , ge(s(x), s(y)) -> ge(x, y)
  , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs))
  , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs)
  , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys)
  , helpc(true(), ys, zs) -> ys
  , helpc(false(), ys, zs) -> zs }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

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

  DPs:
    { 1: app^#(x, y) ->
         c_1(helpa^#(0(), plus(length(x), length(y)), x, y),
             plus^#(length(x), length(y)),
             length^#(x),
             length^#(y))
    , 2: helpa^#(c, l, ys, zs) ->
         c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l))
    , 3: plus^#(x, 0()) -> c_3()
    , 4: plus^#(x, s(y)) -> c_4(plus^#(x, y))
    , 5: length^#(nil()) -> c_5()
    , 6: length^#(cons(x, y)) -> c_6(length^#(y))
    , 7: if^#(true(), c, l, ys, zs) -> c_7()
    , 8: if^#(false(), c, l, ys, zs) ->
         c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)),
             greater^#(ys, zs),
             smaller^#(ys, zs))
    , 9: ge^#(x, 0()) -> c_9()
    , 10: ge^#(0(), s(x)) -> c_10()
    , 11: ge^#(s(x), s(y)) -> c_11(ge^#(x, y))
    , 12: helpb^#(c, l, cons(y, ys), zs) ->
          c_12(helpa^#(s(c), l, ys, zs))
    , 13: greater^#(ys, zs) ->
          c_13(helpc^#(ge(length(ys), length(zs)), ys, zs),
               ge^#(length(ys), length(zs)),
               length^#(ys),
               length^#(zs))
    , 14: smaller^#(ys, zs) ->
          c_14(helpc^#(ge(length(ys), length(zs)), zs, ys),
               ge^#(length(ys), length(zs)),
               length^#(ys),
               length^#(zs))
    , 15: helpc^#(true(), ys, zs) -> c_15()
    , 16: helpc^#(false(), ys, zs) -> c_16() }

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

Strict DPs:
  { app^#(x, y) ->
    c_1(helpa^#(0(), plus(length(x), length(y)), x, y),
        plus^#(length(x), length(y)),
        length^#(x),
        length^#(y))
  , helpa^#(c, l, ys, zs) ->
    c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l))
  , plus^#(x, s(y)) -> c_4(plus^#(x, y))
  , length^#(cons(x, y)) -> c_6(length^#(y))
  , if^#(false(), c, l, ys, zs) ->
    c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)),
        greater^#(ys, zs),
        smaller^#(ys, zs))
  , ge^#(s(x), s(y)) -> c_11(ge^#(x, y))
  , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs))
  , greater^#(ys, zs) ->
    c_13(helpc^#(ge(length(ys), length(zs)), ys, zs),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs))
  , smaller^#(ys, zs) ->
    c_14(helpc^#(ge(length(ys), length(zs)), zs, ys),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs)) }
Weak DPs:
  { plus^#(x, 0()) -> c_3()
  , length^#(nil()) -> c_5()
  , if^#(true(), c, l, ys, zs) -> c_7()
  , ge^#(x, 0()) -> c_9()
  , ge^#(0(), s(x)) -> c_10()
  , helpc^#(true(), ys, zs) -> c_15()
  , helpc^#(false(), ys, zs) -> c_16() }
Weak Trs:
  { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y)
  , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs)
  , plus(x, 0()) -> x
  , plus(x, s(y)) -> s(plus(x, y))
  , length(nil()) -> 0()
  , length(cons(x, y)) -> s(length(y))
  , if(true(), c, l, ys, zs) -> nil()
  , if(false(), c, l, ys, zs) ->
    helpb(c, l, greater(ys, zs), smaller(ys, zs))
  , ge(x, 0()) -> true()
  , ge(0(), s(x)) -> false()
  , ge(s(x), s(y)) -> ge(x, y)
  , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs))
  , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs)
  , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys)
  , helpc(true(), ys, zs) -> ys
  , helpc(false(), ys, zs) -> zs }
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.

{ plus^#(x, 0()) -> c_3()
, length^#(nil()) -> c_5()
, if^#(true(), c, l, ys, zs) -> c_7()
, ge^#(x, 0()) -> c_9()
, ge^#(0(), s(x)) -> c_10()
, helpc^#(true(), ys, zs) -> c_15()
, helpc^#(false(), ys, zs) -> c_16() }

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

Strict DPs:
  { app^#(x, y) ->
    c_1(helpa^#(0(), plus(length(x), length(y)), x, y),
        plus^#(length(x), length(y)),
        length^#(x),
        length^#(y))
  , helpa^#(c, l, ys, zs) ->
    c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l))
  , plus^#(x, s(y)) -> c_4(plus^#(x, y))
  , length^#(cons(x, y)) -> c_6(length^#(y))
  , if^#(false(), c, l, ys, zs) ->
    c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)),
        greater^#(ys, zs),
        smaller^#(ys, zs))
  , ge^#(s(x), s(y)) -> c_11(ge^#(x, y))
  , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs))
  , greater^#(ys, zs) ->
    c_13(helpc^#(ge(length(ys), length(zs)), ys, zs),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs))
  , smaller^#(ys, zs) ->
    c_14(helpc^#(ge(length(ys), length(zs)), zs, ys),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs)) }
Weak Trs:
  { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y)
  , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs)
  , plus(x, 0()) -> x
  , plus(x, s(y)) -> s(plus(x, y))
  , length(nil()) -> 0()
  , length(cons(x, y)) -> s(length(y))
  , if(true(), c, l, ys, zs) -> nil()
  , if(false(), c, l, ys, zs) ->
    helpb(c, l, greater(ys, zs), smaller(ys, zs))
  , ge(x, 0()) -> true()
  , ge(0(), s(x)) -> false()
  , ge(s(x), s(y)) -> ge(x, y)
  , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs))
  , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs)
  , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys)
  , helpc(true(), ys, zs) -> ys
  , helpc(false(), ys, zs) -> zs }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

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

  { greater^#(ys, zs) ->
    c_13(helpc^#(ge(length(ys), length(zs)), ys, zs),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs))
  , smaller^#(ys, zs) ->
    c_14(helpc^#(ge(length(ys), length(zs)), zs, ys),
         ge^#(length(ys), length(zs)),
         length^#(ys),
         length^#(zs)) }

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

Strict DPs:
  { app^#(x, y) ->
    c_1(helpa^#(0(), plus(length(x), length(y)), x, y),
        plus^#(length(x), length(y)),
        length^#(x),
        length^#(y))
  , helpa^#(c, l, ys, zs) ->
    c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l))
  , plus^#(x, s(y)) -> c_3(plus^#(x, y))
  , length^#(cons(x, y)) -> c_4(length^#(y))
  , if^#(false(), c, l, ys, zs) ->
    c_5(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)),
        greater^#(ys, zs),
        smaller^#(ys, zs))
  , ge^#(s(x), s(y)) -> c_6(ge^#(x, y))
  , helpb^#(c, l, cons(y, ys), zs) -> c_7(helpa^#(s(c), l, ys, zs))
  , greater^#(ys, zs) ->
    c_8(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs))
  , smaller^#(ys, zs) ->
    c_9(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) }
Weak Trs:
  { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y)
  , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs)
  , plus(x, 0()) -> x
  , plus(x, s(y)) -> s(plus(x, y))
  , length(nil()) -> 0()
  , length(cons(x, y)) -> s(length(y))
  , if(true(), c, l, ys, zs) -> nil()
  , if(false(), c, l, ys, zs) ->
    helpb(c, l, greater(ys, zs), smaller(ys, zs))
  , ge(x, 0()) -> true()
  , ge(0(), s(x)) -> false()
  , ge(s(x), s(y)) -> ge(x, y)
  , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs))
  , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs)
  , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys)
  , helpc(true(), ys, zs) -> ys
  , helpc(false(), ys, zs) -> zs }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We replace rewrite rules by usable rules:

  Weak Usable Rules:
    { plus(x, 0()) -> x
    , plus(x, s(y)) -> s(plus(x, y))
    , length(nil()) -> 0()
    , length(cons(x, y)) -> s(length(y))
    , ge(x, 0()) -> true()
    , ge(0(), s(x)) -> false()
    , ge(s(x), s(y)) -> ge(x, y)
    , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs)
    , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys)
    , helpc(true(), ys, zs) -> ys
    , helpc(false(), ys, zs) -> zs }

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

Strict DPs:
  { app^#(x, y) ->
    c_1(helpa^#(0(), plus(length(x), length(y)), x, y),
        plus^#(length(x), length(y)),
        length^#(x),
        length^#(y))
  , helpa^#(c, l, ys, zs) ->
    c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l))
  , plus^#(x, s(y)) -> c_3(plus^#(x, y))
  , length^#(cons(x, y)) -> c_4(length^#(y))
  , if^#(false(), c, l, ys, zs) ->
    c_5(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)),
        greater^#(ys, zs),
        smaller^#(ys, zs))
  , ge^#(s(x), s(y)) -> c_6(ge^#(x, y))
  , helpb^#(c, l, cons(y, ys), zs) -> c_7(helpa^#(s(c), l, ys, zs))
  , greater^#(ys, zs) ->
    c_8(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs))
  , smaller^#(ys, zs) ->
    c_9(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) }
Weak Trs:
  { plus(x, 0()) -> x
  , plus(x, s(y)) -> s(plus(x, y))
  , length(nil()) -> 0()
  , length(cons(x, y)) -> s(length(y))
  , ge(x, 0()) -> true()
  , ge(0(), s(x)) -> false()
  , ge(s(x), s(y)) -> ge(x, y)
  , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs)
  , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys)
  , helpc(true(), ys, zs) -> ys
  , helpc(false(), ys, zs) -> zs }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

None of the processors succeeded.

Details of failed attempt(s):
-----------------------------
1) 'matrices' failed due to the following reason:
   
   None of the processors succeeded.
   
   Details of failed attempt(s):
   -----------------------------
   1) 'matrix interpretation of dimension 4' failed due to the
      following reason:
      
      Following exception was raised:
        stack overflow
   
   2) 'matrix interpretation of dimension 3' failed due to the
      following reason:
      
      The input cannot be shown compatible
   
   3) 'matrix interpretation of dimension 3' failed due to the
      following reason:
      
      The input cannot be shown compatible
   
   4) 'matrix interpretation of dimension 2' failed due to the
      following reason:
      
      The input cannot be shown compatible
   
   5) 'matrix interpretation of dimension 2' failed due to the
      following reason:
      
      The input cannot be shown compatible
   
   6) 'matrix interpretation of dimension 1' failed due to the
      following reason:
      
      The input cannot be shown compatible
   

2) 'empty' failed due to the following reason:
   
   Empty strict component of the problem is NOT empty.


Arrrr..