MAYBE

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

Strict Trs:
  { fst(0(), Z) -> nil()
  , fst(s(X), cons(Y, Z)) -> cons(Y, fst(X, Z))
  , from(X) -> cons(X, from(s(X)))
  , add(0(), X) -> X
  , add(s(X), Y) -> s(add(X, Y))
  , len(nil()) -> 0()
  , len(cons(X, Z)) -> s(len(Z)) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

We add following weak dependency pairs:

Strict DPs:
  { fst^#(0(), Z) -> c_1()
  , fst^#(s(X), cons(Y, Z)) -> c_2(fst^#(X, Z))
  , from^#(X) -> c_3(from^#(s(X)))
  , add^#(0(), X) -> c_4()
  , add^#(s(X), Y) -> c_5(add^#(X, Y))
  , len^#(nil()) -> c_6()
  , len^#(cons(X, Z)) -> c_7(len^#(Z)) }

and mark the set of starting terms.

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

Strict DPs:
  { fst^#(0(), Z) -> c_1()
  , fst^#(s(X), cons(Y, Z)) -> c_2(fst^#(X, Z))
  , from^#(X) -> c_3(from^#(s(X)))
  , add^#(0(), X) -> c_4()
  , add^#(s(X), Y) -> c_5(add^#(X, Y))
  , len^#(nil()) -> c_6()
  , len^#(cons(X, Z)) -> c_7(len^#(Z)) }
Strict Trs:
  { fst(0(), Z) -> nil()
  , fst(s(X), cons(Y, Z)) -> cons(Y, fst(X, Z))
  , from(X) -> cons(X, from(s(X)))
  , add(0(), X) -> X
  , add(s(X), Y) -> s(add(X, Y))
  , len(nil()) -> 0()
  , len(cons(X, Z)) -> s(len(Z)) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

No rule is usable, rules are removed from the input problem.

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

Strict DPs:
  { fst^#(0(), Z) -> c_1()
  , fst^#(s(X), cons(Y, Z)) -> c_2(fst^#(X, Z))
  , from^#(X) -> c_3(from^#(s(X)))
  , add^#(0(), X) -> c_4()
  , add^#(s(X), Y) -> c_5(add^#(X, Y))
  , len^#(nil()) -> c_6()
  , len^#(cons(X, Z)) -> c_7(len^#(Z)) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The weightgap principle applies (using the following constant
growth matrix-interpretation)

The following argument positions are usable:
  Uargs(c_2) = {1}, Uargs(c_3) = {1}, Uargs(c_5) = {1},
  Uargs(c_7) = {1}

TcT has computed following constructor-restricted matrix
interpretation.

              [0] = [1]                  
                                         
            [nil] = [2]                  
                                         
          [s](x1) = [1] x1 + [1]         
                                         
   [cons](x1, x2) = [1] x2 + [1]         
                                         
  [fst^#](x1, x2) = [2] x1 + [1] x2 + [1]
                                         
            [c_1] = [2]                  
                                         
        [c_2](x1) = [1] x1 + [1]         
                                         
     [from^#](x1) = [2] x1 + [1]         
                                         
        [c_3](x1) = [1] x1 + [1]         
                                         
  [add^#](x1, x2) = [2] x1 + [2] x2 + [2]
                                         
            [c_4] = [1]                  
                                         
        [c_5](x1) = [1] x1 + [1]         
                                         
      [len^#](x1) = [2] x1 + [2]         
                                         
            [c_6] = [1]                  
                                         
        [c_7](x1) = [1] x1 + [1]         

This order satisfies following ordering constraints:


Further, it can be verified that all rules not oriented are covered by the weightgap condition.

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

Strict DPs: { from^#(X) -> c_3(from^#(s(X))) }
Weak DPs:
  { fst^#(0(), Z) -> c_1()
  , fst^#(s(X), cons(Y, Z)) -> c_2(fst^#(X, Z))
  , add^#(0(), X) -> c_4()
  , add^#(s(X), Y) -> c_5(add^#(X, Y))
  , len^#(nil()) -> c_6()
  , len^#(cons(X, Z)) -> c_7(len^#(Z)) }
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.

{ fst^#(0(), Z) -> c_1()
, fst^#(s(X), cons(Y, Z)) -> c_2(fst^#(X, Z))
, add^#(0(), X) -> c_4()
, add^#(s(X), Y) -> c_5(add^#(X, Y))
, len^#(nil()) -> c_6()
, len^#(cons(X, Z)) -> c_7(len^#(Z)) }

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

Strict DPs: { from^#(X) -> c_3(from^#(s(X))) }
Obligation:
  innermost runtime complexity
Answer:
  MAYBE

The input cannot be shown compatible

Arrrr..