We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).

Strict Trs:
  { app(nil(), YS) -> YS
  , app(cons(X), YS) -> cons(X)
  , from(X) -> cons(X)
  , zWadr(XS, nil()) -> nil()
  , zWadr(nil(), YS) -> nil()
  , zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X)))
  , prefix(L) -> cons(nil()) }
Obligation:
  runtime complexity
Answer:
  YES(O(1),O(1))

The input is overlay and right-linear. Switching to innermost
rewriting.

We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).

Strict Trs:
  { app(nil(), YS) -> YS
  , app(cons(X), YS) -> cons(X)
  , from(X) -> cons(X)
  , zWadr(XS, nil()) -> nil()
  , zWadr(nil(), YS) -> nil()
  , zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X)))
  , prefix(L) -> cons(nil()) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

We add the following weak dependency pairs:

Strict DPs:
  { app^#(nil(), YS) -> c_1()
  , app^#(cons(X), YS) -> c_2()
  , from^#(X) -> c_3()
  , zWadr^#(XS, nil()) -> c_4()
  , zWadr^#(nil(), YS) -> c_5()
  , zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
  , prefix^#(L) -> c_7() }

and mark the set of starting terms.

We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).

Strict DPs:
  { app^#(nil(), YS) -> c_1()
  , app^#(cons(X), YS) -> c_2()
  , from^#(X) -> c_3()
  , zWadr^#(XS, nil()) -> c_4()
  , zWadr^#(nil(), YS) -> c_5()
  , zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
  , prefix^#(L) -> c_7() }
Strict Trs:
  { app(nil(), YS) -> YS
  , app(cons(X), YS) -> cons(X)
  , from(X) -> cons(X)
  , zWadr(XS, nil()) -> nil()
  , zWadr(nil(), YS) -> nil()
  , zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X)))
  , prefix(L) -> cons(nil()) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

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

We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).

Strict DPs:
  { app^#(nil(), YS) -> c_1()
  , app^#(cons(X), YS) -> c_2()
  , from^#(X) -> c_3()
  , zWadr^#(XS, nil()) -> c_4()
  , zWadr^#(nil(), YS) -> c_5()
  , zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
  , prefix^#(L) -> c_7() }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

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

The following argument positions are usable:
  Uargs(c_6) = {1}

TcT has computed the following constructor-restricted matrix
interpretation.

              [nil] = [0]           
                      [0]           
                                    
         [cons](x1) = [0]           
                      [0]           
                                    
    [app^#](x1, x2) = [0]           
                      [0]           
                                    
              [c_1] = [0]           
                      [0]           
                                    
              [c_2] = [0]           
                      [0]           
                                    
       [from^#](x1) = [1]           
                      [0]           
                                    
              [c_3] = [0]           
                      [0]           
                                    
  [zWadr^#](x1, x2) = [0]           
                      [0]           
                                    
              [c_4] = [0]           
                      [0]           
                                    
              [c_5] = [0]           
                      [0]           
                                    
          [c_6](x1) = [1 0] x1 + [0]
                      [0 1]      [0]
                                    
     [prefix^#](x1) = [2]           
                      [0]           
                                    
              [c_7] = [0]           
                      [0]           

The order satisfies the following ordering constraints:

           [app^#(nil(), YS)] =  [0]                     
                                 [0]                     
                              >= [0]                     
                                 [0]                     
                              =  [c_1()]                 
                                                         
         [app^#(cons(X), YS)] =  [0]                     
                                 [0]                     
                              >= [0]                     
                                 [0]                     
                              =  [c_2()]                 
                                                         
                  [from^#(X)] =  [1]                     
                                 [0]                     
                              >  [0]                     
                                 [0]                     
                              =  [c_3()]                 
                                                         
         [zWadr^#(XS, nil())] =  [0]                     
                                 [0]                     
                              >= [0]                     
                                 [0]                     
                              =  [c_4()]                 
                                                         
         [zWadr^#(nil(), YS)] =  [0]                     
                                 [0]                     
                              >= [0]                     
                                 [0]                     
                              =  [c_5()]                 
                                                         
  [zWadr^#(cons(X), cons(Y))] =  [0]                     
                                 [0]                     
                              >= [0]                     
                                 [0]                     
                              =  [c_6(app^#(Y, cons(X)))]
                                                         
                [prefix^#(L)] =  [2]                     
                                 [0]                     
                              >  [0]                     
                                 [0]                     
                              =  [c_7()]                 
                                                         

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 YES(O(1),O(1)).

Strict DPs:
  { app^#(nil(), YS) -> c_1()
  , app^#(cons(X), YS) -> c_2()
  , zWadr^#(XS, nil()) -> c_4()
  , zWadr^#(nil(), YS) -> c_5()
  , zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X))) }
Weak DPs:
  { from^#(X) -> c_3()
  , prefix^#(L) -> c_7() }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

We estimate the number of application of {1,2,3,4} by applications
of Pre({1,2,3,4}) = {5}. Here rules are labeled as follows:

  DPs:
    { 1: app^#(nil(), YS) -> c_1()
    , 2: app^#(cons(X), YS) -> c_2()
    , 3: zWadr^#(XS, nil()) -> c_4()
    , 4: zWadr^#(nil(), YS) -> c_5()
    , 5: zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
    , 6: from^#(X) -> c_3()
    , 7: prefix^#(L) -> c_7() }

We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).

Strict DPs: { zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X))) }
Weak DPs:
  { app^#(nil(), YS) -> c_1()
  , app^#(cons(X), YS) -> c_2()
  , from^#(X) -> c_3()
  , zWadr^#(XS, nil()) -> c_4()
  , zWadr^#(nil(), YS) -> c_5()
  , prefix^#(L) -> c_7() }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

We estimate the number of application of {1} by applications of
Pre({1}) = {}. Here rules are labeled as follows:

  DPs:
    { 1: zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
    , 2: app^#(nil(), YS) -> c_1()
    , 3: app^#(cons(X), YS) -> c_2()
    , 4: from^#(X) -> c_3()
    , 5: zWadr^#(XS, nil()) -> c_4()
    , 6: zWadr^#(nil(), YS) -> c_5()
    , 7: prefix^#(L) -> c_7() }

We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).

Weak DPs:
  { app^#(nil(), YS) -> c_1()
  , app^#(cons(X), YS) -> c_2()
  , from^#(X) -> c_3()
  , zWadr^#(XS, nil()) -> c_4()
  , zWadr^#(nil(), YS) -> c_5()
  , zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
  , prefix^#(L) -> c_7() }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

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

{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, from^#(X) -> c_3()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, prefix^#(L) -> c_7() }

We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).

Rules: Empty
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

Empty rules are trivially bounded

Hurray, we answered YES(O(1),O(1))