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

Strict Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

We add the following dependency tuples:

Strict DPs:
  { sqr^#(0()) -> c_1()
  , sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
  , sqr^#(s(x)) ->
    c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x))
  , +^#(x, 0()) -> c_4()
  , +^#(x, s(y)) -> c_5(+^#(x, y))
  , double^#(0()) -> c_6()
  , double^#(s(x)) -> c_7(double^#(x)) }

and mark the set of starting terms.

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

Strict DPs:
  { sqr^#(0()) -> c_1()
  , sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
  , sqr^#(s(x)) ->
    c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x))
  , +^#(x, 0()) -> c_4()
  , +^#(x, s(y)) -> c_5(+^#(x, y))
  , double^#(0()) -> c_6()
  , double^#(s(x)) -> c_7(double^#(x)) }
Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

  DPs:
    { 1: sqr^#(0()) -> c_1()
    , 2: sqr^#(s(x)) ->
         c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
    , 3: sqr^#(s(x)) ->
         c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x))
    , 4: +^#(x, 0()) -> c_4()
    , 5: +^#(x, s(y)) -> c_5(+^#(x, y))
    , 6: double^#(0()) -> c_6()
    , 7: double^#(s(x)) -> c_7(double^#(x)) }

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

Strict DPs:
  { sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
  , sqr^#(s(x)) ->
    c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x))
  , +^#(x, s(y)) -> c_5(+^#(x, y))
  , double^#(s(x)) -> c_7(double^#(x)) }
Weak DPs:
  { sqr^#(0()) -> c_1()
  , +^#(x, 0()) -> c_4()
  , double^#(0()) -> c_6() }
Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

{ sqr^#(0()) -> c_1()
, +^#(x, 0()) -> c_4()
, double^#(0()) -> c_6() }

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

Strict DPs:
  { sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
  , sqr^#(s(x)) ->
    c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x))
  , +^#(x, s(y)) -> c_5(+^#(x, y))
  , double^#(s(x)) -> c_7(double^#(x)) }
Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

We decompose the input problem according to the dependency graph
into the upper component

  { sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
  , sqr^#(s(x)) ->
    c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x)) }

and lower component

  { +^#(x, s(y)) -> c_5(+^#(x, y))
  , double^#(s(x)) -> c_7(double^#(x)) }

Further, following extension rules are added to the lower
component.

{ sqr^#(s(x)) -> sqr^#(x)
, sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
, sqr^#(s(x)) -> +^#(sqr(x), double(x))
, sqr^#(s(x)) -> double^#(x) }

TcT solves the upper component with certificate YES(O(1),O(n^1)).

Sub-proof:
----------
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(n^1)).
  
  Strict DPs:
    { sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
    , sqr^#(s(x)) ->
      c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x)) }
  Weak Trs:
    { sqr(0()) -> 0()
    , sqr(s(x)) -> s(+(sqr(x), double(x)))
    , sqr(s(x)) -> +(sqr(x), s(double(x)))
    , +(x, 0()) -> x
    , +(x, s(y)) -> s(+(x, y))
    , double(0()) -> 0()
    , double(s(x)) -> s(s(double(x))) }
  Obligation:
    innermost runtime complexity
  Answer:
    YES(O(1),O(n^1))
  
  We use the processor 'Small Polynomial Path Order (PS,1-bounded)'
  to orient following rules strictly.
  
  DPs:
    { 1: sqr^#(s(x)) ->
         c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
    , 2: sqr^#(s(x)) ->
         c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x)) }
  
  Sub-proof:
  ----------
    The input was oriented with the instance of 'Small Polynomial Path
    Order (PS,1-bounded)' as induced by the safe mapping
    
     safe(sqr) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {1, 2},
     safe(double) = {}, safe(sqr^#) = {}, safe(c_2) = {},
     safe(+^#) = {}, safe(double^#) = {}, safe(c_3) = {}
    
    and precedence
    
     empty .
    
    Following symbols are considered recursive:
    
     {sqr^#}
    
    The recursion depth is 1.
    
    Further, following argument filtering is employed:
    
     pi(sqr) = [], pi(0) = [], pi(s) = [1], pi(+) = [1, 2],
     pi(double) = [], pi(sqr^#) = [1], pi(c_2) = [1, 2, 3],
     pi(+^#) = [], pi(double^#) = [], pi(c_3) = [1, 2, 3]
    
    Usable defined function symbols are a subset of:
    
     {sqr^#, +^#, double^#}
    
    For your convenience, here are the satisfied ordering constraints:
    
      pi(sqr^#(s(x))) = sqr^#(s(; x);)                                           
                      > c_2(+^#(),  sqr^#(x;),  double^#();)                     
                      = pi(c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x)))   
                                                                                 
      pi(sqr^#(s(x))) = sqr^#(s(; x);)                                           
                      > c_3(+^#(),  sqr^#(x;),  double^#();)                     
                      = pi(c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x)))
                                                                                 
  
  The strictly oriented rules are moved into the weak component.
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak DPs:
    { sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
    , sqr^#(s(x)) ->
      c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x)) }
  Weak Trs:
    { sqr(0()) -> 0()
    , sqr(s(x)) -> s(+(sqr(x), double(x)))
    , sqr(s(x)) -> +(sqr(x), s(double(x)))
    , +(x, 0()) -> x
    , +(x, s(y)) -> s(+(x, y))
    , double(0()) -> 0()
    , double(s(x)) -> s(s(double(x))) }
  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.
  
  { sqr^#(s(x)) -> c_2(+^#(sqr(x), double(x)), sqr^#(x), double^#(x))
  , sqr^#(s(x)) ->
    c_3(+^#(sqr(x), s(double(x))), sqr^#(x), double^#(x)) }
  
  We are left with following problem, upon which TcT provides the
  certificate YES(O(1),O(1)).
  
  Weak Trs:
    { sqr(0()) -> 0()
    , sqr(s(x)) -> s(+(sqr(x), double(x)))
    , sqr(s(x)) -> +(sqr(x), s(double(x)))
    , +(x, 0()) -> x
    , +(x, s(y)) -> s(+(x, y))
    , double(0()) -> 0()
    , double(s(x)) -> s(s(double(x))) }
  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)).
  
  Rules: Empty
  Obligation:
    innermost runtime complexity
  Answer:
    YES(O(1),O(1))
  
  Empty rules are trivially bounded

We return to the main proof.

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

Strict DPs:
  { +^#(x, s(y)) -> c_5(+^#(x, y))
  , double^#(s(x)) -> c_7(double^#(x)) }
Weak DPs:
  { sqr^#(s(x)) -> sqr^#(x)
  , sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
  , sqr^#(s(x)) -> +^#(sqr(x), double(x))
  , sqr^#(s(x)) -> double^#(x) }
Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^1))

We use the processor 'matrix interpretation of dimension 1' to
orient following rules strictly.

DPs:
  { 2: double^#(s(x)) -> c_7(double^#(x))
  , 3: sqr^#(s(x)) -> sqr^#(x)
  , 4: sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
  , 5: sqr^#(s(x)) -> +^#(sqr(x), double(x))
  , 6: sqr^#(s(x)) -> double^#(x) }

Sub-proof:
----------
  The following argument positions are usable:
    Uargs(c_5) = {1}, Uargs(c_7) = {1}
  
  TcT has computed the following constructor-based matrix
  interpretation satisfying not(EDA).
  
         [sqr](x1) = [0]         
                                 
               [0] = [0]         
                                 
           [s](x1) = [1] x1 + [4]
                                 
       [+](x1, x2) = [0]         
                                 
      [double](x1) = [0]         
                                 
       [sqr^#](x1) = [2] x1 + [0]
                                 
     [+^#](x1, x2) = [0]         
                                 
    [double^#](x1) = [2] x1 + [0]
                                 
         [c_5](x1) = [1] x1 + [0]
                                 
         [c_7](x1) = [1] x1 + [1]
  
  The order satisfies the following ordering constraints:
  
          [sqr(0())] =  [0]                        
                     >= [0]                        
                     =  [0()]                      
                                                   
         [sqr(s(x))] =  [0]                        
                     ?  [4]                        
                     =  [s(+(sqr(x), double(x)))]  
                                                   
         [sqr(s(x))] =  [0]                        
                     >= [0]                        
                     =  [+(sqr(x), s(double(x)))]  
                                                   
         [+(x, 0())] =  [0]                        
                     ?  [1] x + [0]                
                     =  [x]                        
                                                   
        [+(x, s(y))] =  [0]                        
                     ?  [4]                        
                     =  [s(+(x, y))]               
                                                   
       [double(0())] =  [0]                        
                     >= [0]                        
                     =  [0()]                      
                                                   
      [double(s(x))] =  [0]                        
                     ?  [8]                        
                     =  [s(s(double(x)))]          
                                                   
       [sqr^#(s(x))] =  [2] x + [8]                
                     >  [2] x + [0]                
                     =  [sqr^#(x)]                 
                                                   
       [sqr^#(s(x))] =  [2] x + [8]                
                     >  [0]                        
                     =  [+^#(sqr(x), s(double(x)))]
                                                   
       [sqr^#(s(x))] =  [2] x + [8]                
                     >  [0]                        
                     =  [+^#(sqr(x), double(x))]   
                                                   
       [sqr^#(s(x))] =  [2] x + [8]                
                     >  [2] x + [0]                
                     =  [double^#(x)]              
                                                   
      [+^#(x, s(y))] =  [0]                        
                     >= [0]                        
                     =  [c_5(+^#(x, y))]           
                                                   
    [double^#(s(x))] =  [2] x + [8]                
                     >  [2] x + [1]                
                     =  [c_7(double^#(x))]         
                                                   

The strictly oriented rules are moved into the weak component.

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

Strict DPs: { +^#(x, s(y)) -> c_5(+^#(x, y)) }
Weak DPs:
  { sqr^#(s(x)) -> sqr^#(x)
  , sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
  , sqr^#(s(x)) -> +^#(sqr(x), double(x))
  , sqr^#(s(x)) -> double^#(x)
  , double^#(s(x)) -> c_7(double^#(x)) }
Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^1))

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

{ sqr^#(s(x)) -> double^#(x)
, double^#(s(x)) -> c_7(double^#(x)) }

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

Strict DPs: { +^#(x, s(y)) -> c_5(+^#(x, y)) }
Weak DPs:
  { sqr^#(s(x)) -> sqr^#(x)
  , sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
  , sqr^#(s(x)) -> +^#(sqr(x), double(x)) }
Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^1))

We use the processor 'matrix interpretation of dimension 1' to
orient following rules strictly.

DPs:
  { 1: +^#(x, s(y)) -> c_5(+^#(x, y))
  , 2: sqr^#(s(x)) -> sqr^#(x)
  , 3: sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
  , 4: sqr^#(s(x)) -> +^#(sqr(x), double(x)) }
Trs:
  { double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }

Sub-proof:
----------
  The following argument positions are usable:
    Uargs(c_5) = {1}
  
  TcT has computed the following constructor-based matrix
  interpretation satisfying not(EDA).
  
         [sqr](x1) = [0]         
                                 
               [0] = [0]         
                                 
           [s](x1) = [1] x1 + [1]
                                 
       [+](x1, x2) = [0]         
                                 
      [double](x1) = [3] x1 + [1]
                                 
       [sqr^#](x1) = [3] x1 + [5]
                                 
     [+^#](x1, x2) = [1] x2 + [5]
                                 
    [double^#](x1) = [0]         
                                 
         [c_5](x1) = [1] x1 + [0]
                                 
         [c_7](x1) = [0]         
  
  The order satisfies the following ordering constraints:
  
        [sqr(0())] =  [0]                        
                   >= [0]                        
                   =  [0()]                      
                                                 
       [sqr(s(x))] =  [0]                        
                   ?  [1]                        
                   =  [s(+(sqr(x), double(x)))]  
                                                 
       [sqr(s(x))] =  [0]                        
                   >= [0]                        
                   =  [+(sqr(x), s(double(x)))]  
                                                 
       [+(x, 0())] =  [0]                        
                   ?  [1] x + [0]                
                   =  [x]                        
                                                 
      [+(x, s(y))] =  [0]                        
                   ?  [1]                        
                   =  [s(+(x, y))]               
                                                 
     [double(0())] =  [1]                        
                   >  [0]                        
                   =  [0()]                      
                                                 
    [double(s(x))] =  [3] x + [4]                
                   >  [3] x + [3]                
                   =  [s(s(double(x)))]          
                                                 
     [sqr^#(s(x))] =  [3] x + [8]                
                   >  [3] x + [5]                
                   =  [sqr^#(x)]                 
                                                 
     [sqr^#(s(x))] =  [3] x + [8]                
                   >  [3] x + [7]                
                   =  [+^#(sqr(x), s(double(x)))]
                                                 
     [sqr^#(s(x))] =  [3] x + [8]                
                   >  [3] x + [6]                
                   =  [+^#(sqr(x), double(x))]   
                                                 
    [+^#(x, s(y))] =  [1] y + [6]                
                   >  [1] y + [5]                
                   =  [c_5(+^#(x, y))]           
                                                 

The strictly oriented rules are moved into the weak component.

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

Weak DPs:
  { sqr^#(s(x)) -> sqr^#(x)
  , sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
  , sqr^#(s(x)) -> +^#(sqr(x), double(x))
  , +^#(x, s(y)) -> c_5(+^#(x, y)) }
Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
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.

{ sqr^#(s(x)) -> sqr^#(x)
, sqr^#(s(x)) -> +^#(sqr(x), s(double(x)))
, sqr^#(s(x)) -> +^#(sqr(x), double(x))
, +^#(x, s(y)) -> c_5(+^#(x, y)) }

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

Weak Trs:
  { sqr(0()) -> 0()
  , sqr(s(x)) -> s(+(sqr(x), double(x)))
  , sqr(s(x)) -> +(sqr(x), s(double(x)))
  , +(x, 0()) -> x
  , +(x, s(y)) -> s(+(x, y))
  , double(0()) -> 0()
  , double(s(x)) -> s(s(double(x))) }
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)).

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

Empty rules are trivially bounded

Hurray, we answered YES(O(1),O(n^2))